H2相当于Oracle的用户

时间:2014-09-24 14:28:11

标签: sql oracle h2

Oracle的'user'关键字是否有H2等价物?例如,在Oracle中,我可以这样做:

SELECT USER FROM DUAL;

它将返回登录数据库的用户。 具体来说,我想将数据库用户默认为表上的created_by列,即:

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

此语句可在Oracle数据库中使用,但H2会抛出异常

  

未找到“USER”列;

谢谢!

1 个答案:

答案 0 :(得分:1)

H2中不是USER函数吗?

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