精华内容
下载资源
问答
  • 创建触发器的sql语句
    2021-03-23 20:19:35

    在MySQL中,创建触发器语法如下:
    CREATE TRIGGER trigger_name
    trigger_time trigger_event ON tbl_name
    FOR EACH ROW
    trigger_stmt
    其中:

    trigger_name:标识触发器名称,用户自行指定;
    trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
    trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
    tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
    trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句,每条语句结束要分号结尾。

    【NEW 与 OLD 详解】

    MySQL 中定义了 NEW 和 OLD,用来表示 触发器的所在表中,触发了触发器的那一行数据。 具体地: 在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据; 在 UPDATE 型触发器中,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据; 在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据; 使用方法: NEW.columnName (columnName 为相应数据表某一列名)

    create trigger audit_log 
    after insert on employees_test
    for each row
    begin 
        insert into audit values(new.id,new.name);
    end
    
    更多相关内容
  • 1、创建表 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2、创建自动增长序列 代码如下: ... 3、创建触发器 代码如下: CREATETRIGGERTest_In
  • 触发器创建sql语句

    2011-07-06 11:36:42
    前后触发器创建语句使用sql语句创建触发器
  • MySQL的创建触发器语句

    在MySQL中,创建触发器语法如下:

    create trigger trigger_name
    trigger_time trigger_event on tbl_name
    for each row
    trigger_stmt
    

    其中,

    • trigger_name:标识触发器名称,用户自行指定;
    • trigger_time:标识触发时机,取值为 before 或 after;
    • trigger_event:标识触发事件,取值为 insert、update 或 delete;
    • tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
    • trigger_stmt:触发器程序体,可以是一句 sql 语句,或者用 begin 和 end 包含的多条语句,每条语句结束要分号结尾。

    【new 与 old 详解】
    MySQL 中定义了 new 和 old,用来表示 触 发 器 的 所 在 表 中 , 触 发 了 触 发 器 的 那 一 行 数 据 \textcolor{red}{触发器的所在表中,触发了触发器的那一行数据}
    具体地:
    1、在 insert 型触发器中,new 用来表示将要(before)或已经(after)插入的新数据
    2、在 update 型触发器中,old 用来表示将要或已经被修改的原数据,new 用来表示将要或已经修改为的新数据
    3、在 delete 型触发器中,old 用来表示将要或已经被删除的原数据
    使用方法: new.columnName (columnName 为相应数据表某一列名)

    展开全文
  • SQLserver中触发器创建常用语句

    千次阅读 2020-06-26 23:20:50
    @@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响! 我们通常可以通过update、...
    1 if update(列名)
    检查是否更新了某一列,用于 insert 或 update,不能用于 delete。
    例:
    create trigger f
    on tbl
    for update
    as
        if update(status) or update(title)     --更新了 status 或 title 列
    -------------------------------------------
    2 rollback
    事物回滚。
    create trigger tr
    on 表名
    for update
    as
        if update(userName)
            rollback tran
     
    关键在最后两句,其解释为:如果更新了 userName 列,就回滚事务。
    -------------------------------------------
    3 @@rowcount
    系统变量,更改的行数。
    @@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型。 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG。
    
    @@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响!
    
    我们通常可以通过update、insert语句并使用@@ROWCOUNT来检测是否更改了任何一些行。
    -------------------------------------------
    4 declare
    声明变量。
    例:
    declare @n int        --定义了一个int类型的变量@n
    -------------------------------------------
    5 object_id
    object_id(N'student_sum',N'U') is null--判断student_sum表是否存在
    -------------------------------------------
    6 if not exists/exists
     if not exists (select * from student_sum)--判断表中是否有记录
    -------------------------------------------
    7 if 特殊运算符
    特殊运算符:IN、NOT IN、BETWEEN…AND…、LIKE、NOT LIKE、IS NULL、IS NOT NULL、SOME|ANY、ALL、EXISTS、NOT EXISTS。
    例:
    if @a in('F','M')/(select子句)    --若@a在'F'或'M'两者之一或select子句
    
    if @a between 0 and 100    --若@a在0-100之间
    
    if @a like'D[0-9][0-9]'    --若@a为DXX,X为0~9其中一个
    
    if @a is null        --若@a为空值
    
    if @a >= all/any/some(select子句)    --若@a>=子句集合中所有/任意/某些
    
    if exists(select子句)    --子句集合是否至少有一个元组

     

    展开全文
  • 数据库——SQL语句触发器

    千次阅读 2021-06-11 14:20:48
    目录1 AFTER触发器2 INSTEAD OF触发器 1 AFTER触发器 [USE <数据库名> GO] CREATE TRIGGER <...**例:**创建一个删除学生成绩的触发器。 CREATE TRIGGER SCCJ ON SC FOR DELETE AS PRINT’学生已经被删除’;

    1 AFTER触发器

    [USE <数据库名>
    GO]
    CREATE TRIGGER <触发器名>
    ON <表名> FOR <动作INSERT,UPDATE,DELETE>
    AS
    [触发触发器后的附加条件]
    BEGIN
    <动作集合>
    END;

    **例:**创建一个删除学生成绩的触发器。
    CREATE TRIGGER SCCJ
    ON SC FOR DELETE
    AS
    PRINT’学生已经被删除’;

    2 INSTEAD OF触发器

    [USE <数据库名>
    GO]
    CREATE TRIGGER <触发器名>
    ON <表名> INSTEAD OF <动作INSERT,UPDATE,DELETE>
    AS
    BEGIN
    <动作集合>
    END;

    **例:**定义一个学生查询所有选课成绩的视图VIEW_SC,要求显示学号、学生姓名、课程名、学分、成绩。在该视图上创建一个插入数据的INSTEAD OF触发器,代替插入命令执行插入操作。
    CREATE VIEW CJ(Sno,Sname,Cname,Ccredit,Grade)
    AS
    SELECT Student.Sno,Sname,Cname,Ccredit,Grade
    FROM Student,Course,SC
    WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno;
    CREATE TRIGGER INS
    ON CJ INSTEAD OF <动作INSERT,UPDATE,DELETE>
    AS
    BEGIN
    INSERT INTO CJ(Sno,Sname,Cname,Ccredit,Grade)
    SELECT Student.Sno,Sname,Cname,Ccredit,Grade
    FROM INSERTED.
    END;

    展开全文
  • 创建SqlServer数据库触发器脚本范例,方便大家用sql创建触发器,学习sqlserver的朋友可以参考下。
  • 您可能感兴趣的文章:SQLServer2005触发器提示其他会话正在使用事务的上下文的解决方法SQL Server触发器及触发器中的事务学习SQL Server 触发器 表的特定字段更新时,触发Update触发器SQLServer触发器创建、删除、...
  • sql语句---触发器

    万次阅读 2019-03-18 21:32:43
    一、触发器定义 触发器是一种机制,当某个事物满足某个条件,触发某个功能 当某个事物满足某个条件触发某个功能 用法: 1、安全考虑,考虑到数据被修改的权限问题,用触发器代替用户来添加修改数据。 2、审计...
  • 获取触发器 参考前面标准写法修改TRIGGER CREATE OR REPLACE TRIGGER "QRPAY"."BANK_CARD_ID_TRG" before insert on bank_card for each row declare -- local variables here begin select bank_card_id...
  • 以下是从mysql官方文档《23.3.1 Trigger Syntax and Examples》抄来的一段创建触发器SQL脚本, delimiter // CREATE TRIGGER upd_check BEFORE UPDATE ON account FOR EACH ROW BEGIN IF NEW.amount < 0 THEN ...
  • 触发器(trigger)设置某个条件,如果SQL语句执行了该条件则触发某个或者某些固定的SQL 触发器:类型 1.DML触发器 2.替代触发器 3.系统事件触发器 对数据表进行DML语句操作(insert、update、delete)时所触发的...
  • 这里写自定义目录标题前言触发器的定义触发器的作用触发器的优点触发器的缺点触发器的分类DML触发器DDL触发器登录触发器触发器的种类after...-SQL语句来增删查改触发器创建触发器删除触发器查询触发器修改触发器...
  • 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.PRICE : = 2000; END IF; END' at line 5 求解哪里...
  • SQLserver中触发器常用语句

    千次阅读 2020-06-26 14:56:36
    T-SQL语句 2删除触发器 drop trigger 触发器名称[,...] 3重命名触发器 用查询分析器重命名 exec sp_rename 原名称, 新名称 sp_rename 是 SQL Server 自带的一个存储过程,用于更改当前数据库中用户创建的对象...
  • 使用navicat 创建触发器, 直接截图: 禁止修改触发器 begin if new.money_id!=old.money_id or new.userid!=old.userid or new.money_num!=old.money_num or new.opt_type!=old.opt_type or new.add_time!=old....
  • SQL触发器 例题

    千次阅读 2022-01-18 11:05:07
    为student表创建触发器,在插入数据后更新class表中的StudentNum列信息: create trigger tri_Student on Class after update as update Class set StudentNum=(select StudentNum from inserted) 为teacher...
  • 创建触发器的时候sql语句里面加上begin,end就报错。如果删除了begin,end就没问题。但是不用begin的话一个触发器没法执行两个以上的sql。加上begin想要在一个触发器执行两个sql文。 报错内容是 #42000You have an ...
  • SQL Server 创建触发器(trigger)

    千次阅读 2018-07-11 15:33:41
    触发器简介:触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发。触发器是当对某一个表进行操作。例如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应...
  • 在 sc 表创建一个 insert 触发器,如果插入一条选课信息时,学生的学号值在表student 中不存在,则不执行插入操作,并提示用户。 create trigger insert_1 on cj for insert as begin declare @sno char(10) ...
  • SQL语法——触发器

    千次阅读 2022-04-17 20:17:42
    在MySQL中,触发器是一组SQL语句,当对关联表上的数据进行更改时会自动调用这些语句。可以定义触发器在INSERT,UPDATE或DELETE语句更改数据之前或之后调用。在MySQL 5.7.2版之前,可以为每个表定义最多六个触发器。 ...
  • 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...
  • sqlite 触发器的使用,以及navicat创建触发器。实现更新某个字段的时,自动更新该记录的更新时间updateAt。跟新字段的值为当前时间戳
  • SQL创建触发器:如何将两张表的数据同步更新
  • 数据库管理与应用 9.2.1使用SQL语句创建触发器.pdf 学习资料 复习资料 教学资源
  • sqlserver创建触发器

    千次阅读 2020-04-08 13:05:31
    创建触发器/存储过程的使用 (1)触发器的使用 ①在数据表“学生”中创建update触发器,级联更新“选课”表相应的记录。 ②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,769
精华内容 45,107
热门标签
关键字:

创建触发器的sql语句