我正在使用PostgreSQL并创建了下表:
CREATE TABLE "TrainingMatrix"
(
payroll text NOT NULL,
"TrainingName" text NOT NULL,
"Institute" text,
"TrainingDate" date NOT NULL,
"ExpiryDate" date,
"RecorderName" text,
"EnteringDate" date,
CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate")
)
我想让EnteringDate
由每台输入记录的机器中的当前日期自动填充。
答案 0 :(得分:1)
CREATE TABLE "TrainingMatrix"
(
payroll text NOT NULL,
"TrainingName" text NOT NULL,
"Institute" text,
"TrainingDate" date NOT NULL,
"ExpiryDate" date,
"RecorderName" text,
"EnteringDate" date not null default current_timestamp,
CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate")
)
current_timestamp等于Now()将给出当前日期&时间(包括时区)http://www.postgresql.org/docs/8.1/static/functions-datetime.html
将列定义为非null也有助于确保没有明确输入没有时间戳的记录。
答案 1 :(得分:1)
CREATE TABLE "TrainingMatrix"
(
payroll text NOT NULL,
"TrainingName" text NOT NULL,
"Institute" text,
"TrainingDate" date NOT NULL,
"ExpiryDate" date,
"RecorderName" text,
"EnteringDate" date NOT NULL default current_date,--"EnteringDate" date,
CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate")
)
答案 2 :(得分:0)
使用默认关键字
column datatype default sysdate
同时检查
How to set default value for column of new created table from select statement in 11g
答案 3 :(得分:0)
通过使用默认的sysdate,您可以获得所需的输出。
CREATE TABLE "TrainingMatrix"
(
payroll text NOT NULL,
"TrainingName" text NOT NULL,
"Institute" text,
"TrainingDate" date NOT NULL,
"ExpiryDate" date,
"RecorderName" text,
"EnteringDate" date default sysdate,
CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate")
)