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....)(多个字段确定唯一性)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM