SQLite 使用默认值创建触发器错误
SQLite create trigger error with DEFAULT VALUES
按照 sqlite 文档:https://www.sqlite.org/lang_createtrigger.html 我在更简单的数据库上创建了一个非常简单的触发器 table(使用 SQLite3 数据库):
CREATE TABLE IF NOT EXISTS
users_ids
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
status INTEGER DEFAULT 0
)
触发器:
CREATE TRIGGER addID
AFTER UPDATE OF status
ON users_ids
WHEN NEW.status > 0
BEGIN
INSERT INTO users_ids DEFAULT VALUES;
END
这给我关于 DEFAULT
关键字的错误。如果我将 INSERT
更改为:
INSERT INTO users_ids (status) VALUES (0);
然后就可以了。但是由于文档清楚地提到了默认值作为 INSERT
的选项(插入触发器除外),所以我看不出为什么它会给我这个错误。我在这里错过了什么?
CREATE TABLE IF NOT EXISTS users_ids ...
AFTER UPDATE OF status ON user_ids ...
INSERT INTO user_id ...
请决定 table 的实际名称是什么。
此外,documentation 说:
The "INSERT INTO table DEFAULT VALUES" form of the INSERT statement is not supported.
按照 sqlite 文档:https://www.sqlite.org/lang_createtrigger.html 我在更简单的数据库上创建了一个非常简单的触发器 table(使用 SQLite3 数据库):
CREATE TABLE IF NOT EXISTS
users_ids
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
status INTEGER DEFAULT 0
)
触发器:
CREATE TRIGGER addID
AFTER UPDATE OF status
ON users_ids
WHEN NEW.status > 0
BEGIN
INSERT INTO users_ids DEFAULT VALUES;
END
这给我关于 DEFAULT
关键字的错误。如果我将 INSERT
更改为:
INSERT INTO users_ids (status) VALUES (0);
然后就可以了。但是由于文档清楚地提到了默认值作为 INSERT
的选项(插入触发器除外),所以我看不出为什么它会给我这个错误。我在这里错过了什么?
CREATE TABLE IF NOT EXISTS users_ids ...
AFTER UPDATE OF status ON user_ids ...
INSERT INTO user_id ...
请决定 table 的实际名称是什么。
此外,documentation 说:
The "INSERT INTO table DEFAULT VALUES" form of the INSERT statement is not supported.