H2等同于Oracle的用户是什么意思?

3

在Oracle中,是否有类似于H2的“user”关键字的等效物?例如,在Oracle中,我可以执行以下操作:

SELECT USER FROM DUAL;

它将返回登录到数据库中的用户。具体而言,我希望在表格的created_by列上默认数据库用户,即:

CREATE TABLE MY_TABLE(
  CREATED_BY Varchar2(100) DEFAULT USER NOT NULL
  ...
)

这个语句在Oracle数据库中可以运行,但是H2会抛出异常:

未找到“USER”列;

谢谢!

1个回答

1

USER 在 H2 中不是一个函数吗?

SELECT USER()

将返回当前用户。作为列的默认值时,按预期工作:

create table MY_TABLE(
  CREATED_BY Varchar2(100) DEFAULT USER() NOT NULL,
  value Varchar2(10)
)
INSERT INTO MY_TABLE (value) VALUES ('XXX');

作为另一个用户:
INSERT INTO MY_TABLE (value) VALUES ('YYY');
SELECT * FROM MY_TABLE;

结果:

CREATED_BY      VALUE  
SA              XXX
SYLVAIN         YYY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接