精华内容
下载资源
问答
  • 创建序列SQL语句: CREATE SEQUENCE TABLENAME_SEQ MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 ...创建触发器SQL语句: CREATE OR REPLACE TRIGGER "TABLENAME_TRI" BEFORE IN

    创建序列SQL语句:

    CREATE SEQUENCE TABLENAME_SEQ
    MINVALUE 1
    MAXVALUE 999999999999999999999999999
    START WITH 1
    INCREMENT by 1
    NOCACHE;


    创建触发器SQL语句:

    CREATE OR REPLACE TRIGGER "TABLENAME_TRI" BEFORE
    INSERT ON jxy_program.TABLENAME FOR EACH ROW 
    declare
    next_checkup_no number;
    begin
    select TABLENAME_SEQ.nextval
    into next_checkup_no
    from dual;
    :NEW.ID := next_checkup_no;
    end;


    先建序列,再建触发器。这样在保存新记录时,主键ID会自动增加。

    展开全文
  • 创建触发器

    2020-01-07 15:46:36
    触发器 (1) 创建表 create table stu( name VARCHAR(10), sex number(1), ...(2) 创建触发器 create or replace trigger t_myDemo before insert on str for each row begin update str set sex...

    创建触发器

    (1) 创建表

    create table  stu(
      name VARCHAR(10),
      sex  number(1),
      phone varchar(11)
    );
    

    (2) 创建触发器

    create or replace  trigger t_myDemo
    before insert
    on str
    for each row 
    begin
      update str set sex=0 where name = 'XXX';
    end;
    

    (3)触发触发器

    insert into stu values ('XXX',1,1509993030);
    
    展开全文
  • MySQL实验八 创建触发器 一、实验环境: Win 10 mysql8.2 二、实验内容与完成情况: -- 3.1 创建触发器 -- (1) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)为员工医疗 -- 保险系统(实验 03 创建的 7...

    MySQL实验八 创建触发器

    一、实验环境:

    Win 10 mysql8.2

    二、实验内容与完成情况:

    -- 3.1 创建触发器
     -- (1) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)为员工医疗
    -- 保险系统(实验 03 创建的 7 个表)创建触发器“insurance_row_tri”,当删除医保表
    -- “insurance”中某医保卡号的记录时触发,输出“XX 卡号的记录删除成功!”。删除
    -- 某记录,并查看结果。
    
    -- //创建触发器
    delimiter //
    create trigger `insurance_row_tri` after 
    delete on `insurance`
    for each row 
    begin
    set @oldcno =old.cno;
    select concat(@oldcno,"卡号的记录删除成功") into @asd;
    end;
    -- //插入数据
    insert into insurance values(20201212,'3',100,'1');
    -- //删除数据
    delete from insurance where cno ='3';
    -- //查询结果
    select @asd;
    -- //删除触发器
    drop trigger `insurance_row_tri`;
    
    

    image-20210612180700757

    -- (2) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)为员工医疗
    -- 保险系统(实验 03 创建的 7 个表)创建触发器“update_row_tri”,当医保卡表“card”
    -- 的某一“cno”值更改时,消费表“consume”中对应的“cno”值也跟着进行相应的更改。
    -- 更改“card”表的某一“cno”值,查看“consume”表中对应的“cno”值是否发生变化。
    -- (提示:原来这两张表是有主外键关联的,测试如果不删除主外键能否实现;
    -- 如果不行,可以先删除主外键关联。)
    
    -- //创建触发器
    delimiter //
    create trigger `update_row_tri` after 
    update on `card`
    for each row 
    begin
    if old.cno!=new.cno then
    update `consume` set consume.cno=new.cno where consume.cno=old.cno;
    end if;
    end;
    -- //因为consume表空数据 提前插入数据测试
    insert into `consume` values('1','1',20210612,'阿莫西林',10,199);
    -- //修改数据
    update `card` set card.cno=13 where card.cno=10;
    -- MySQL error1451 外键异常处理
    -- 表有外键所以delete报错了,这里有2种办法处理:
    -- 1.临时设置外键失效
    -- 2.删除表涉及到的外键的表的数据
    -- //这里用第一种方法:
    SET FOREIGN_KEY_CHECKS = 0;
    -- 再次执行update即可成功
    -- //删除触发器
    drop trigger `update_row_tri`;
    
    -- 特殊情况下:MySQL报错1175
    -- 原因:MySql 运行在 safe-updates模式下
    -- 该模式会导致非主键条件下无法执行update或者delete命令
    -- 解决方法:提前删除主外键
    -- 删除主键
    alter table `card` drop primary key;
    alter table `consume` drop primary key;
    -- 主键重新添加
    alter table `card` add primary key(cno);
    alter table `consume` add primary key(`sno`,`hno`,`sdate`);
    

    imgimg

    img

    imgimg

    -- (3) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)为员工医疗保险
    -- 系统(实验 03 创建的 7 个表)创建触发器“delete_tri”,当删除员工表“staff”中某
    -- 个员工的信息时,将就诊表“see”中该员工的所有信息一并删除。删除“staff”表中
    -- 某个员工的信息,查看“see”表是否还有该员工的信息。(提示:原来这两张表是有
    -- 主外键关联的,测试如果不删除主外键能否实现;如果不行,可以先删除主外键
    -- 关联。)
    
    -- //创建触发器
    delimiter //
    create trigger `delete_tri` after 
    delete on `staff`
    for each row 
    begin
    delete from `see` where see.sno=old.sno;
    end;
    -- //因为see表空数据 提前插入数据测试
    insert into `see` values('2','1',20210612);
    -- //删除数据
    delete from `staff` where sno=2;
    -- //删除触发器
    drop trigger `delete_tri`;
    

    imgimg

    img

    imgimg

    -- 3.2 查看触发器
    --  (1) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)查看员工医
    -- 疗保险系统(实验 03 创建的 7 个表)数据库中的所有触发器。
    show triggers;
    -- (2) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)查看员工医
    -- 疗保险系统(实验 03 创建的 7 个表)数据库中的触发器。使用数据字典中查看员
    -- 工医疗保险数据库中触发器
    select * from information_schema.triggers where  TRIGGER_SCHEMA='db_test_学号';
    
    img img
    -- 3.3 删除触发器
    -- (1) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)删除触发器
    -- “update_row_tri”。
    -- //删除触发器
    drop trigger `update_row_tri`;
    -- (2) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)删除触发器
    -- “delete_tri”。
    -- //删除触发器
    drop trigger `delete_tri`;
    
    展开全文
  • Oracle无法创建触发器

    2019-11-19 18:20:13
    使用SYS AS SYSDBA登录是不能创建触发器的,使用SCOTT用户登录可以创建触发器。 scott用户默认的密码是tiger。 如果没有scott用户可以创建一个,使用SYS AS DBA登录后键入一下命令即可: create user scott ...

    使用SYS AS SYSDBA登录是不能创建触发器的,使用SCOTT用户登录可以创建触发器。

    scott用户默认的密码是tiger。

    如果没有scott用户可以创建一个,使用SYS AS DBA登录后键入一下命令即可:

    create user scott identified by tiger;

    欢迎大家关注/订阅我的微信公众号Code Art Online,我会在我的公众号分享个人见闻,发现生活趣味;这里不仅有0和1,还有是诗和远方↓↓↓

    展开全文
  • pg数据库创建触发器

    2020-06-09 10:58:05
    2、创建触发器 步骤: 先为触发器建一个执行函数,此函数的返回类型为触发器类型 trigger; 然后即可创建相应的触发器。 创建触发器的语法: CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD...
  • 前言在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。触发器类型触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器...
  • MySql-创建触发器

    千次阅读 2017-12-12 11:42:44
    在MySQL中,创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:标识触发器名称,用户自行指定; trigger_time...
  • 创建自增序列,创建触发器(在触发时间中操纵序列,实现主键自增): Oracle数据库不支持自增方法 create sequence seq_userInfo_usid start with 1;--创建一个序列从1开始 create or replace triggle tri_...
  • mysql 创建触发器

    2012-09-20 16:13:36
    Mysql 创建触发器需要修改默认的截止符号,默认为分号,但是分号会出现在触发器的begin和end中间,导致命令执行错误, mysql -h localhost -u root -p123456 -D test 修改截止符号命令如下: delimiter //  ...
  • 1.可以使用Transact-SQL中的CREATE TRIGGER语句创建触发器,该语句的...在企业管理器中创建触发器的方法为:在要创建触发器的表或视图上右击鼠标,在弹出的菜单中选择“所有任务”命令下的“管理触发器”子命令。 ...
  • 命令行创建触发器

    千次阅读 2011-10-25 10:55:40
    命令行创建触发器 昨天要用触发器,但是在命令行下就是不行,查了资料才发现要加东西,希望对后来着有帮助!! 1.测试数据表情况: mysql> select * from t1; +------+-------+ | id | name | +------+-------...
  • 触发器详解 1。触发器与触发该触发器的SQL...(但在oracle8i 以及更高的版本中,你可以创建作为自治事务而执行的触发器,在这种情况下,触发器可以做提交或回滚操作,而与触发该触发器的外部SQL所在的事务无关)...
  • 事项开启和使用 //修改表的引擎 alter table a engine=myisam; //开启事务 begin; //关闭自动提交 set autocommit=0;...update bank set money=money-100 where bid=1;...update bank set money=mone
  • 触发器可以简单理解一种特殊的存储过程,之前存储过程的变量定义及流程语句同样适合触发器,唯一不同的是我们只需要定义触发器,而不用手动调用触发器。...创建触发器的语法如下: CREATE TRIGGER trigger_n.
  • 技术要点 ...MySQL数据库创建触发器的格式如下: create trigger <触发器名称> { before | after} {insert | update | delete} on <表名> for each row ...
  • 在SQL中创建触发器 

    2009-05-31 11:22:00
    创建触发器以前必须考虑到以下几个方面: CREATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它用户; 触发器是数据库对象,所以其命名必须符合命名...
  • 创建触发器(在主表中添加,从表不用动) 在主表创建触发器,名称随意,触发分after和before两种,很明显的为在操作之前还是之后触发操作 定义 以begin开始,以end 结束,stay为第二个表(从表) 插入数据 修改数据...
  • mysql创建触发器失败

    千次阅读 2018-10-08 11:08:00
    &#13; 报错信息  You do not have the SUPER privilege and binary logging is enabled (you *might* want to to use the less safe log_bin_trust_function_creators...使用设置命令:   set global log_...
  • 数据库初级教程:第八讲创建触发器 触发器的创建与存储过程是类似的。有人很反对使用触发器,认为很影响性能。 这在一定的程度上是会影响性能的。但是,触发器能满足特定的安全需求。例如 数据库的审计功能是使用了...
  • 用SQL语句创建触发器

    2017-08-28 16:15:00
    --假设XSCJ数据库中增加一新表XS_HIS,表结构和...创建一个触发器,当XS表被删除一行,把删除的记录写到日--志表XS_HIS中。 CREATE OR REPLACE TRIGGER del_xs BEFORE DELETE ON XS FOR EACH ROW BEGIN INS...
  • SQL Server创建触发器

    2014-03-18 22:59:10
    为什么需要触发器 为什么需要触发器(TRIGGER)呢?典型的应用就是银行的取款机系统 假定该系统的数据库设计需要两张表:帐户信息表(bank)存放帐户的信息,交易信息表(transInfo)存放每次的交易信息。   上述...
  • SQL创建触发器的通用语法

    千次阅读 2014-08-19 20:07:14
    创建触发器的通用语法如下所示: CREATE [OR REPLACE] TRIGGER Trigger_name {BEFORE |AFTER} Triggering_event ON table_name [FOR EACH ROW] [FOLLOWS another_trigger] [ENABLE/DISABLE] [WHEN condition...
  • 上面介绍了有关触发器的概念、作用和一些基本问题,下面我们将分别介绍在MS SQLServer 中如何用SQL Server 管理工具Enterprise Manager 和Transaction_SQL 来创建触发器。  在创建触发器以前必须考虑到以下几个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,826
精华内容 24,730
关键字:

创建触发器的命令