oracle 下创建表

创建一个新表:

SQL> create table invoice

2 (

3 invoice_id number,

4 vendor_id number,

5 invoice_number varchar2(50),

6 invoice_date date default sysdate,

7 invoice_total number(9,2),

8 payment_total number(9,2) default 0,

9 constraint invoice_pk primary key (invoice_id,vendor_id),

10 constraint invoive_v_un unique (vendor_id),

11 constraint in_fk foreign key (vendor_id) references vendor(vendor_id) ondelete cascade

12 )

关于约束可以在列级创建,如:invoice_id number primary key ,

也可以和上程序一样在表级用constraint 来添加,建议使用表级添加,因为如果没有为约束指定名称的话,系统会自动生成一个名称,到时候如果你想修改列上的约束还要到处找这个约束叫什么名称,会很麻烦。

2:创建表副本:

create table emp_copy as select * from emp ;

create table emp_copyl as select * from emp where 1=2;

这两个语句都可以新建一个和emp一样的表,不同的是,第一个语句创建的emp_copy表包含了emp表的所有架构和数据记录,我看的书上说也复制了原表的约束,但是我实验了一下,发现约束并没有复制进来,可以插入主键重复的值;

第二个emp_copyl表只是架构和emp表相同,并不包含emp中的数据;



你可能感兴趣的:(oracle,table,副本)