【问题标题】:PhpMyAdmin not handling triggerPhpMyAdmin 不处理触发器
【发布时间】:2014-02-02 14:46:12
【问题描述】:

我目前有:

delimiter //

CREATE TRIGGER blog_creator AFTER INSERT ON news

IF (EXISTS(SELECT * FROM news WHERE headline = 'LastItem' 
THEN 
INSERT INTO `blog` (`id`, `title`, `content`) VALUES (500, 'Hi', 'An item was posted!');

delimiter ;

Phpmyadmin 没有处理这个问题。没有错误消息,只是一个加载符号,然后什么都没有。 SHOW TRIGGERS 什么也不显示,插入新闻也不做任何事情。我做错了什么?

【问题讨论】:

    标签: mysql triggers phpmyadmin


    【解决方案1】:

    您缺少一些东西。 试试这个:

    delimiter //
    
    CREATE TRIGGER blog_creator AFTER INSERT ON news
    FOR EACH ROW --always add this line
    BEGIN -- start code block
        -- I think it would be faster to do the count instead of exists
        IF ((SELECT COUNT(*) FROM news WHERE headline = 'LastItem' ) > 0) 
        THEN 
        INSERT INTO `blog` (`id`, `title`, `content`) VALUES (500, 'Hi', 'An item was posted!');
        END IF; --you need to end if
    END// --you need to end trigger using the new delimiter
    
    delimiter ;
    

    您可以在这里试用 SQLFiddle:

    http://sqlfiddle.com/#!2/524b4/1

    【讨论】:

    • 由于某种原因,phpmyadmin 显示它正在加载,然后什么也不做。没有确认或错误消息。其他 SQL 查询工作正常。感谢您到目前为止的尝试。
    • 这段代码应该可以正常工作。过去,我在 phpMyAdmin 中遇到了一些存储过程和触发器的问题。我的解决方案是切换到 MySQL Workbench :)
    • 哪个 phpMyAdmin 版本?
    猜你喜欢
    • 2015-08-24
    • 2015-10-16
    • 2017-11-16
    • 1970-01-01
    • 2015-05-18
    • 2013-11-26
    • 2017-09-06
    • 2018-03-04
    • 2013-05-16
    相关资源
    最近更新 更多