29、创建表inline

作者: 小母牛不生产奶 | 来源:发表于2018-10-23 21:41 被阅读1次

create table department(id number(2) not null primary key, name  varchar2(14) unique);

drop table tb;


--创建表,有匿名约束

create table tb(id number not null primary key,

name varchar2(20) uniquecheck(length(name)>2),

deptid number references department(id) on

delete cascade); -- 或者set null


drop table def_table;

--创建有名字的约束

-- default 应该紧跟在数据类型后面

create table def_table(

 col_id number(5),

 name varchar2(20 char) default 'noname' constraint ck_name_nn not nullenable ,--disable

 email varchar2(200 char) default 'email',

 constraint pk_col_id primary key(col_id),

 constraint ck_name_len check(length(name)>3)

);


select * from sys.user_tables;

--判断表是否存在,存在则删除,然后在建立

declare

  t     varchar(200) :='tb';

 tname number;    

begin

 select count(table_name) into tname from sys.user_tables wheretable_name=Upper(t);

  iftname=0 then        --如果使用select table_name into tname,不存在是会报错

    dbms_output.put_line(t || ' not exists.');

  else

    dbms_output.put_line(t || ' already exists.');

    execute immediate 'drop table ' || t;

  endif;


 execute immediate 'create table ' || t || '(

  idnumber not null primary key,

 name varchar2(20) unique check(length(name)>2),

 deptid number references dept(id) on delete cascade)';

 dbms_output.put_line(t || ' created .');

end;             


相关文章

网友评论

    本文标题:29、创建表inline

    本文链接:https://www.haomeiwen.com/subject/ytdzzftx.html