当前位置: 首页 > 知识库问答 >
问题:

MySQL触发代码问题

戚飞雨
2023-03-14

我在MariaDb服务器中有一个触发器,其代码如下:

    DELIMITER //
    CREATE TRIGGER `set_app_number` 
    BEFORE INSERT ON `table_name` FOR EACH ROW BEGIN
        DECLARE newAppNo INTEGER;
        SELECT Max(id)+1 INTO newAppNo FROM table_name;
        SET NEW.application_number = newAppNo; 
    END; //
    DELIMITER ;

我正在尝试在我拥有MySQL(5.7+版本)的生产服务器上创建相同的触发器。我会得到这样的错误:

误差静态分析:

分析中发现错误6处。

  • 语句开头意外。(在位置0的“创建触发器”附近)
  • 语句开头意外。(靠近位置15处的“set_app_number”)
  • 语句开头意外。(靠近位置39处的“插入之前”)
  • 语句开头意外。(第57位“table_name”附近)
  • 语句开头意外。(靠近位置74处的“FOR EACH ROW begin”)
  • 语句开头意外。(第95位“Declare newAppNo integer”附近)

SQL查询:

table_name上插入之前为每一行BEGIN DECLARE newAppNo INTEGER创建触发器set_app_number

MySQL Said:文档

在第1行“Create TRIGGERset_app_numberBEFORE INSERT ONtable_name”附近

我不知道这里到底有什么问题。提前道谢。

当尝试使用more->trigger->add trigger从phpMyAdmin添加触发器时,将生成完全相同的代码。我不确定为什么它不允许在从SQL执行它时执行相同的操作。:(

共有1个答案

羊煜
2023-03-14

删除分隔符a将其作为查询运行

CREATE TRIGGER `set_app_number` 
    BEFORE INSERT ON 
        `table_name` 
    FOR EACH ROW 
    BEGIN
        DECLARE newAppNo INTEGER;
        SELECT Max(id)+1 INTO newAppNo FROM table_name;
        SET NEW.application_number = newAppNo; 
    END;
 类似资料:
  • 我制作了jbutton并向其添加了ActionListner,但public void actionPerformed(ActionEvent e){}中的代码执行了两次。它打印两次test,而不是只打印一次 这里是完整的代码,以防这是没有意义的。看起来问题是添加两个动作监听器到我的按钮。“if(testbut.GetActionListeners().length<1))testbut.AddA

  • 问题内容: 我有一个顾客。 当将新行添加到此客户表时,如果新行的(主键)已经在客户表中,则我想使用其他字段对现有(旧)行进行更新。()。 否则(如果不在表中)插入新行。我知道我可以使用触发器在mssql中做到这一点。有没有一种方法可以在mysql中做到这一点。 问题答案: MySQL没有触发器,但是它具有REPLACE和INSERT … ON DUPLICATE KEY UPDATE (请参阅文档

  • 本文向大家介绍JS代码触发事件代码实例,包括了JS代码触发事件代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了js代码触发事件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Oracle触发器实例代码,包括了Oracle触发器实例代码的使用技巧和注意事项,需要的朋友参考一下 Oracle触发器,用于选单后修改选单的表的触发动作。 以上所述是小编给大家介绍的Oracle触发器实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍MySQL触发器 Update触发Insert失败,包括了MySQL触发器 Update触发Insert失败的使用技巧和注意事项,需要的朋友参考一下 今天工作需要,想要实现将仅对状态更新的表进行历史记录显示,于是考虑在原表中建立触发器,将更新的内容同时写入另一张表 于是进行测试 执行触发器语句,报错,报错内容如下: 分析,由于访问工具HediSQL,导致无法正常创建触发器,相同语句,

  • 我面临QuartzScheduler触发器定义的问题。 2019年2月28日星期四16:27:30 IST:开始时间 0/20 0 0 ? * * * Cron表达式 2019年2月28日星期四16:29:30 IST结束时间 触发器schedulerAdderTrigger=触发器生成器。newTrigger()。withIdentity(触发键)。startAt(schedulerdata.g