在 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 中创建触发器,插入后将更新花药表中的字段?