【发布时间】:2013-09-12 07:07:54
【问题描述】:
我想将记录标记为已删除,而不是实际删除记录。 我的意图是使用触发器而不是触发器,但我得到了一个 SQLException,我和 Google 都不知道如何解决这个问题。
我的代码:
CREATE TRIGGER IF NOT EXISTS <Trigger>
INSTEAD OF DELETE ON <Table>
FOR EACH ROW
BEGIN
UPDATE <Table>
SET Status = 'D'
WHERE ID = old.ID;
END
我的错误:
java.sql.SQLException: cannot create INSTEAD OF trigger on table: main.<Table>
at org.sqlite.NativeDB.throwex(NativeDB.java:210)
at org.sqlite.NativeDB._exec(Native Method)
at org.sqlite.Stmt.executeUpdate(Stmt.java:152)
请帮帮我?
编辑: 我真正想要的是激活外键执行。
参考这里:How do you enforce foreign key constraints in SQLite through Java?
【问题讨论】:
-
我认为触发器只适用于视图
-
我不是最好的 SQLite,但是否应该声明“旧”?像“INSTEAD OF DELETE ON
”之类的?
sry,不是 OLD 是正确的,请忽略我的评论@Danis 在“Instead of Trigger”标题下link...触发器可以在视图上创建,也可以在普通表上...
标签: sql sqlite triggers sqlitejdbc