在Oracle中将默认值设置为当前用户

Dav*_*ssy 5 sql oracle

我试图在Oracle 11g中创建一个新表,其中列的默认值是当前登录的用户.我需要这样做是为了记录目的.

CREATE TABLE tracking (
  pk NUMBER(19,0) PRIMARY KEY, 
  description VARCHAR2(50),
  created_by VARCHAR2(128) DEFAULT CURRENT_USER
);
Run Code Online (Sandbox Code Playgroud)

如何编写该DEFAULT CURRENT_USER部分,以便将当前的Oracle用户作为默认值?我知道我可以使用触发器,但我不应该......

Ben*_*Ben 7

您需要使用USERCURRENT_USER:

CREATE TABLE tracking (
  pk NUMBER(19,0) PRIMARY KEY, 
  description VARCHAR2(50),
  created_by VARCHAR2(128) DEFAULT USER
);
Run Code Online (Sandbox Code Playgroud)

SQL小提琴

用户的最大长度为30,因此您可以减少此值,我会增加DESCRIPTION列的大小,除非您非常确定所有内容都将少于51个字符.