作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我尝试为表的更新创建一个 instead-of 触发器。 instead-of 触发器的正常使用是 View ,但 Sqlite 手册说 instead-of 触发器对表也有效。但我收到错误:无法在表上创建 INSTEAD OF 触发器。我想知道为什么。
我使用外键:
PRAGMA foreign_keys = ON;
我有两张 table 。标识符表:
CREATE TABLE id
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
created REAL NOT NULL DEFAULT CURRENT_TIMESTAMP
);
还有一个引用标识符的表:
CREATE TABLE person
(
id INTEGER NOT NULL DEFAULT (last_insert_rowid()) REFERENCES id,
login TEXT,
password TEXT,
firstname TEXT,
lastname TEXT,
email TEXT,
created REAL NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id, created)
);
插入效果很好:
INSERT INTO id DEFAULT VALUES;
INSERT INTO person (login) VALUES ('root');
SELECT * FROM person;
1|root|||||2012-02-28 18:03:45
现在我想定义以下触发器,它将更新转换为插入:
CREATE TRIGGER person_update INSTEAD OF UPDATE OF login, password, firstname, lastname, email ON person
BEGIN
INSERT INTO person (login, password, firstname, lastname, email)
VALUES (new.login, new.password, new.firstname, new.lastname, new.email);
END;
但它因上述错误而失败,我不明白为什么。
最佳答案
我试过 the source code (搜索“无法创建 INSTEAD OF”),尽管阅读了评论中的链接,其中详细概述了 create trigger 语句,但我会说带有 INSTEAD OF
的触发器仅用于 View ,不能与表格一起使用。
关于database - 为什么 SQLite 错误 : cannot create INSTEAD OF trigger on table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487381/
我是一名优秀的程序员,十分优秀!