【发布时间】:2014-12-21 23:03:33
【问题描述】:
我正在尝试在我的 mysql 数据库中创建一个触发器,但我不断收到错误消息。这是我的查询:
CREATE TRIGGER update_counters AFTER INSERT ON cheats_main FOR EACH ROW
BEGIN
DELETE FROM meta_info;
INSERT INTO meta_info (system_id, system, game_count, cheat_count) VALUES (
SELECT id, system,
(SELECT count(g1.id) FROM cheats_games g1 WHERE g1.system = s.id) AS games_counter,
(SELECT count(c2.id) FROM cheats_main c2 JOIN cheats_games g2 ON g2.id = c2.game_id
WHERE g2.system = s.id) AS cheats_counter
FROM systeme AS s
);
END;
MySQL 表“meta_info”有这样的结构:
system_id | system | game_count | cheat_count | created
我不断收到的错误是:
MySQL 说:文档 1064 - 你有 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在第 3 行的 '' 附近使用正确的语法
第 3 行是:
DELETE FROM meta_info;
当我删除这一行时,我得到了这个错误:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 'SELECT id, system, 附近 (SELECT count(g1.id) FROM cheats_games g1 WHERE g1.system ' 在第 4 行
本例中的第 4 行是:
SELECT id, system (...)
内部 SELECT 工作得很好。我得到一个包含这些列的结果表:
id | system | games_counter | cheats_counter
任何帮助表示赞赏。谢谢。
【问题讨论】:
标签: php mysql sql database phpmyadmin