【问题标题】:H2 equivalent to Oracle's userH2相当于Oracle的用户
【发布时间】:2014-11-19 02:22:15
【问题描述】:

Oracle 的“用户”关键字是否有 H2 等效项?例如,在 Oracle 中,我可以这样做:

SELECT USER FROM DUAL;

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

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

该语句在Oracle数据库中可以工作,但是H2抛出异常

未找到“USER”列;

谢谢!

【问题讨论】:

    标签: sql oracle h2


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 2016-07-14
      • 2012-02-21
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多