码迷,mamicode.com
首页 > 其他好文 > 详细

create table as 复制not null

时间:2017-06-17 17:06:13      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:使用   插入数据   varchar2   str   int   insert   not   created   ann   

创建一张表包含非空约束,唯一约束和check约束

SQL> create table dept(
2 ename varchar2(20) constraint mep_ename_nn not null,
3 email varchar2(30) constraint mep_email_uk unique,
4 constraint emp_email_ck check ((instr(email,‘@‘)>0)));

Table created.

 

查看约束情况:
SQL> select constraint_name,constraint_type,column_name
2 from user_constraints natural join user_cons_columns
3 where table_name=‘DEPT‘;

CONSTRAINT_NAME C COLUMN_NAME
------------------------------ - ---------------
MEP_ENAME_NN       C ENAME
EMP_EMAIL_CK         C EMAIL
MEP_EMAIL_UK         U EMAIL

 

使用create table as语句创建另外一张表:

SQL> create table dept_test as select * from dept;

Table created.

 

检查约束情况,只有ename上的nut null约束被复制了过来

SQL> select constraint_name,constraint_type,column_name
2 from user_constraints natural join user_cons_columns
3 where table_name=‘DEPT_TEST‘;

CONSTRAINT_NAME C COLUMN_NAME
------------------------------ - ---------------
SYS_C0011591           C ENAME

 

尝试插入数据报错

SQL> insert into dept_test(email) values(‘cc@‘);
insert into dept_test(email) values(‘cc@‘)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SYS"."DEPT_TEST"."ENAME")

create table as 复制not null

标签:使用   插入数据   varchar2   str   int   insert   not   created   ann   

原文地址:http://www.cnblogs.com/zx3212/p/7040553.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!