在 phpmyadmin 上插入触发器

Posted

技术标签:

【中文标题】在 phpmyadmin 上插入触发器【英文标题】:insert into trigger on phpmyadmin 【发布时间】:2014-09-17 13:59:57 【问题描述】:

我是 mysql 新手。我有两个表帖子和通知。我正在尝试为帖子中添加的每个新行创建一个触发器,我想将该新行添加到 notification_id。 它在 mysql 上正常工作,但在 phpmyadmin 触发器中不会执行,它给出了一个错误

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解正确的语法使用

第 11 行的 '' 附近

我的表格如下所示:

帖子表

create table posts
(
id int,
 topic_id tinyint,
post_creator int,
post_date datetime,
post_content text
);

通知表

create table notification
(
    not_id int ,
    top_id tinyint,
    p_creator int,
    p_date datetime,
    p_content text
);

notification_id 触发器

delimiter $$;
    create trigger notification_id before Insert on posts
    for each row 
    begin
        declare id int;
        declare topic_id int;
        declare post_creator int;
        declare post_date datetime;
        declare post_content text;
    
        insert into notification(not_id,top_id,p_creator,p_date,p_content) values(new.id,new.topic_id,new.post_creator,new.post_date,new.post_content);
    end$$;

【问题讨论】:

所以要清楚,您已经创建了触发器,当您从 MySQL 执行 INSERT 时,它可以正常工作,但是从 phpMyAdmin 执行相同的 INSERT 失败并显示错误消息?您是通过“插入”选项卡插入还是直接输入 SQL? 【参考方案1】:
    先正常创建表 更改 phpmyadmin 界面中的默认分隔符 [它就在您输入查询的文本框下方] 单独运行创建触发器脚本,无需更改分隔符的行 所以,你的触发器代码不应该有delimiter $$;

【讨论】:

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

使用 phpmyadmin 的 MySQL 触发器

更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误

Wamp 服务器:使用 phpmyadmin

使用变量触发 phpMyAdmin

在 phpmyadmin 中添加触发器

如何创建`phpmyadmin`数据库