灯火阑珊ya 2021-12-16 17:21 采纳率: 50%
浏览 84

MYSQL触发器怎么写?

问题遇到的现象和发生背景

按照书上例子写报错,但不理解,不会改

问题相关代码,请勿粘贴截图
mysql> CREATE TRIGGER Student_Count
    -> AFTER INSERT ON Student
    -> REFERENCING
    -> NEW TABLE AS DELTA
    -> FOR EACH STATEMENT
    -> INSERT INTO StudentInsertLog(Numbers)
    -> SELECT COUNT(*)FROM DELTA;

运行结果及报错内容

ERROR 1064 (42000): 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 'REFERENCING
NEW TABLE AS DELTA
FOR EACH STATEMENT
INSERT INTO StudentInsertLog(N' at line 3

我想要达到的结果

将每次对表Student的插入操作所增加的学生个数记录到表StudentInsertLog中

  • 写回答

2条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2021-12-16 23:38
    关注

    很好奇你书里的例子,能不能拍个照看看,顺便拍一下书名?
    "REFERENCING NEW TABLE AS"这种写法在pg里是有的,
    在DB2里是"REFERENCING NEW_TABLE AS",

    然后我怀疑是我孤陋寡闻,在网上搜到了这篇,和你这个sql一模一样
    http://codetd.com/article/10431225

    但是,这是sql server啊,不是mysql,mysql是不支持这种语法的,不同数据库的语法是不一样的

    评论

报告相同问题?

问题事件

  • 创建了问题 12月16日