Oracle通过存储过程建立表、index、sequence、trigger等
程序员文章站
2022-05-07 14:09:33
...
在Oracle环境下,通过存储过程实现:
判断表是否存在,如果不存在,就创建。
在新建表的同时建立对应的index。
又因为需要让主键自动增长,所以需要建立sequence和trigger。
sql脚本如下所示:
DECLARE tb_exists NUMBER ; BEGIN SELECT COUNT (*) INTO tb_exists FROM user_tables WHERE table_name = 'TB_USER' ; IF tb_exists = 0 THEN EXECUTE IMMEDIATE 'create table TB_USER( USER_ID NUMBER(30) PRIMARY KEY, USER_CODE VARCHAR2(100), USER_NAME VARCHAR2(100) )' ; EXECUTE IMMEDIATE 'create index idx_00000111111 on tb_user(user_code)'; EXECUTE IMMEDIATE 'create index idx_00000222222 on tb_user(user_name)'; EXECUTE IMMEDIATE 'CREATE SEQUENCE TB_USER_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE'; EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER TB_USER_trigger BEFORE INSERT ON TB_USER FOR EACH ROW WHEN (NEW.USER_ID IS NULL) BEGIN SELECT TB_USER_sequence.nextval INTO:NEW.USER_ID FROM dual ; END;'; END IF ; END ;
执行sql脚本成功。
上一篇: CAD2017怎么创建块与分解块?
下一篇: Oracle通过触发器+序列实现自动增长