【发布时间】:2018-10-16 06:24:47
【问题描述】:
我一直在努力设置触发器并不断收到错误:
“DROP”附近的 SQL 逻辑错误:语法错误
我有几个表 main_table、other_one、other_two 等。
- main_table 有几列,主键列名为 filehash
- main_table的主键列的值也是other_*表的名称
所以,如果我删除 main_table 中主键为 other_one 的行,我希望触发器也删除表 other_one
这是产生错误的触发器语句
CREATE TRIGGER remove_other_one AFTER DELETE ON 'main_table'
WHEN (OLD.filehash == 'other_one')
BEGIN
DROP TABLE IF EXISTS 'other_one' ;
END remove_other_one;
编辑:我在 SQLite DB 浏览器中运行触发器语句时得到的“更完整”错误是:
“DROP”附近:语法错误:CREATE TRIGGER remove_other_one AFTER DELETE ON 'main_table' WHEN (OLD.filehash == 'other_one') BEGIN DROP
【问题讨论】:
-
去掉引号。
DROP TABLE IF EXISTS other_one -
删除这些引号时出现同样的错误。
-
我认为你的 sqlite 版本不支持
DROP TABLE IF EXSITS。在没有IF EXISTS的情况下删除表格是否有效? -
删除
IF EXISTS并仅使用DROP TABLE时出现同样的错误 -
您是否正在从某个脚本执行查询?你能提供你要删除的table_name吗?