1 2

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(表名);

--为字段设置默认值
--例子:将年龄的默认值设置为22
alter table table_name(表名) add constraint dt_age(默认名,任意取) default 22(值) for 年龄(字段);

--为字段设置主键
  alter table table_name add constraint Field_PRIMARY(任意取) primary key (column_Field)(单个字段确定唯一性)
 
--为字段设置复合主键
alter table table_name add constraint Field_PRIMARY(任意取) primary key (column_Field1,column_Field2....)(多个字段确定唯一性)

 

posted @ 2019-08-05 17:56  大海的泡沫  阅读(1166)  评论(0编辑  收藏  举报
1 2