在 phpmyadmin 中创建触发器

Posted

技术标签:

【中文标题】在 phpmyadmin 中创建触发器【英文标题】:Creating triggers in phpmyadmin 【发布时间】:2018-03-04 17:37:48 【问题描述】:

我正在尝试在我的 mysql 数据库表上创建一个触发器。我正在编写以下代码:

CREATE TRIGGER before_delete BEFORE DELETE ON billingrates FOR EACH ROW;

但是当我运行它时,我收到以下错误:

#1064 - 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 第 2 行的 '' 附近

请指导我。感谢期待。

【问题讨论】:

见13.1.20 CREATE TRIGGER Syntax。 您能详细说明什么是触发体和触发顺序吗?也是强制性的吗?我阅读了该文档,但我无法完全理解它。我对此并不陌生。很抱歉给您带来麻烦。 您没有指定触发器的主体。你想做什么 其实我想取消自动删除行。当我询问这个​​问题时,我得到了一个编写触发器的解决方案。 完全不清楚你想做什么。您能否指定您的触发器应该做什么以及应该触发它的表。-我认为自动取消行与您的问题无关。 【参考方案1】:

请尝试以下代码。

CREATE TRIGGER `before_delete` BEFORE DELETE ON `barcode_master` 
FOR EACH ROW BEGIN 
UPDATE library_emp_master SET job_type = 1 WHERE barcode_no =   OLD.barcode_no; 
END;

【讨论】:

给我这个错误:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行 @Jalpa 的 '' 附近使用 @rushikulkarni 请提供另一个要触发的表。请检查我的答案。 @rushikulkarni 我添加了触发器以在删除barcode_master表时更改library_emp_master【参考方案2】:

假设身体触发。让我们在删除之前进行备份

DELIMITER $$ CREATE TRIGGER before_delete BEFORE DELETE ON billingrates FOR EACH ROW BEGIN INSERT INTO table_name VALUES(old.column1); End $$

【讨论】:

以上是关于在 phpmyadmin 中创建触发器的主要内容,如果未能解决你的问题,请参考以下文章

在 phpmyadmin 中创建触发器

如何在 phpmyadmin 中创建触发器,插入后将更新花药表中的字段?

TRIGGER 语法错误 mysql 说 #1303 - 无法从另一个存储的例程中创建触发器 - phpmyadmin

PHPMYADMIN 中的过程和触发器

使用变量触发 phpMyAdmin

Phpmyadmin 在“END”附近创建触发器语法错误