create table assignments
(
loginid varchar2(6),
comments varchar2(20),
status char(1),
given_by varchar2(6),
courseanddept varchar2(15),
adate date default sysdate,
foreign key(loginid) references login(loginid)
);
我有一个这种结构的表格,我无法自动插入sysdate
。为了插入自动sysdate
?
答案 0 :(得分:3)
如果您没有为日期列明确设置值,则将使用默认值;例如:
insert into assignments( loginid ,
comments ,
status ,
given_by ,
courseanddept
)
values ( 'login',
'comments',
'X',
'Y',
'unknown'
)
结果数据:
SQL> select adate from assignments;
ADATE
---------
23-JAN-17
如果为列设置了值,则使用您设置的值并忽略默认值:
insert into assignments( loginid ,
comments ,
status ,
given_by ,
courseanddept ,
adate
)
values ( 'login2',
'comments2',
'Z',
'W',
'unknown2',
date '2016-12-31'
)
给出:
SQL> select adate from assignments;
ADATE
---------
31-DEC-16
如果设置NULL
值,则相同:
insert into assignments( loginid ,
comments ,
status ,
given_by ,
courseanddept ,
adate
)
values ( 'login3',
'comments3',
'Z',
'W',
'unknown2',
null
)
给出:
SQL> select adate from assignments;
ADATE
---------
SQL>
答案 1 :(得分:0)
不要为“adate”列提供任何输入,因为你已经提到了默认的sysdate,所以每当你在插入时没有给出输入它会将它更新为sysdate,如果你给它值,它将取值并忽略sysdate 。请参考以上示例。你会明白的。