Oracle数据库 常用的触发器命令
创建自增序列,创建触发器(在触发时间中操纵序列,实现主键自增):
Oracle数据库不支持自增方法
create sequence seq_userInfo_usid start with 1;--创建一个序列从1开始 create or replace triggle tri_userInfo --创建或替换 名称为tri_userInfo触发器 before before insert or update on UserInfo --在向userInfo表中添加和修改, 记录之前的触发 for each row --没影响一行出发一次 begin --触发之后执行下面的语句 IF INSERTING THEN --插入数据操作 select seq_testTragger_id.nextval into :new.UserId from dual; --:new新值 :old老值 :NEW.UserId := seq_testTragger_id.currval; :NEW.createtime := systimestamp; ELSIF UPDATING then --修改数据操作 :NEW.createtime := systimestamp; END IF; end;
--查看所有触发器 select * from user_triggers; --禁用触发器 alter trigger tri_uname(触发器名字) disable; --激活触发器 alter trigger tri_uname(触发器名字) enable; --重新编译 alter trigger tri_uname(触发器名字) complie; --禁用某个表上的触发器 alter table table_name(表名) diable all triggers; --删除触发器 DROP TRIGGER tri_uname(触发器名字); --删除序列 DROP SEQUENCE seq_testTragger_id(序列名); --清空表数据 DELETE FROM table_name(表名);alter table table_name add constraint Field_PRIMARY(任意取) primary key (column_Field)(单个字段确定唯一性)
--为字段设置默认值
--例子:将年龄的默认值设置为22
alter table table_name(表名) add constraint dt_age(默认名,任意取) default 22(值) for 年龄(字段);
--为字段设置主键
--为字段设置复合主键
alter table table_name add constraint Field_PRIMARY(任意取) primary key (column_Field1,column_Field2....)(多个字段确定唯一性)