此例必须要求name,salary 是not null
create table sm_emp_promote
(PromEmpID char(10) not null,
Name varchar2(10) not null,
salary number(8,2) not null
);
1:
insert into sm_emp_promote (PromEmpID,Name,salary)
select EmpID,Name,salary from sm_emp where Name in ('张飞','关羽','刘备');
--ok!
3:
insert into sm_emp_promote (PromEmpID)
select EmpID from sm_emp where Name in ('张飞','关羽','刘备');
--在没有insert 纪录时此句 执行没error!
2:
--不insert 纪录,执行3
--insert into sm_emp values ('0000000001','张飞',111,'62651234');
--insert 纪录,执行3
--err!非null的字段,不可以不写在field list中。为什么?
insert into sm_emp_promote (PromEmpID) values('001');
--ok吗?
--与上一问题相同。
--允许为null的字段可以不出现在字段列表中,插入结果自动插入NULL。
--not null,的字段必须出现在字段列表中。