在sqlite中创建触发器时出现语法错误

时间:2015-04-15 20:40:38

标签: sqlite syntax triggers

以下代码导致SQLite中出现语法错误。 我想这一定很简单,但我看不到它。

我有两个表,页面和项目,通过文本代码链接。当这个代码在页面表中更改时,我也想在项目表中更改它。

SQLite版本相当陈旧,3.7.7.1,但我没有在版本历史中看到过这样的问题。这种情况发生在Windows上,PHP 5.3.1。

CREATE TABLE IF NOT EXISTS "efpage" ( "pageid" integer NOT NULL PRIMARY KEY, "psite" text NULL, "pgcode" text NULL ); 
CREATE TABLE IF NOT EXISTS "efitem" ( "itemid" integer NULL PRIMARY KEY , "isite" text NULL, "ititle" text NULL,  "inpage" text NULL); 

DROP TRIGGER IF EXISTS update_pagecode;
CREATE TRIGGER update_pagecode AFTER UPDATE OF pgcode ON efpage
BEGIN
UPDATE efitem SET inpage = new.pgcode WHERE inpage = old.pgcode;
END;    

产生的错误是 “pgcode”附近的错误:语法错误。

尝试不同的东西,我看到语法错误在“old.pgcode;”

之后

1 个答案:

答案 0 :(得分:0)

如CL所示,

这与SQLite的版本相关联。 我在Windows上使用捆绑了PHP的SQLite。

下一个(已回答)问题是:

How to update the SQLite version bundled with PHP