sqlite triggle的问题

[复制链接]
查看11 | 回复3 | 2011-6-24 01:03:48 | 显示全部楼层 |阅读模式
各位高手,我创建了一个超级简单的数据库
其中包含了两个表A,B,表里只有一个id字段.我期望A新增记录的时候B也新增记录并引用A.于是编写Triggle,但执行的时候总是提示\"nosuchtable:main.new\",哪位高手能指点一下为什么会这样?
数据库DDL如下:
CREATETABLE[A](
[idA]INT);

CREATETABLE[B](
[idB]INT);

CREATETRIGGER[auto]
AFTERINSERT
ON[A]
BEGIN
insertinto[B]([idB])selectnew.[idA]fromnew;
END;

ps:
new是占位符,是sqlite提供的,本质上等价于
where[col].rowid=last_insert_rowid();
sqliteversion:3.7.2
回复

使用道具 举报

千问 | 2011-6-24 01:03:48 | 显示全部楼层
CREATETRIGGER[auto]
AFTERINSERTON[A]
foreachrow
BEGIN
insertinto[B]([idB])values(new.[idA]);
END;









<h4class=\"ask\">追问


谢谢大侠,运行没问题了,但还请教一下原理:
foreachrow的意思是不是每一行记录被改变都会触发triggle?
我没有加foreachrow为啥就不对呢?反应器一样也被触发了呀.
此外我为什么不能在这里运行select子查询,请教教我吧,谢谢
回复

使用道具 举报

千问 | 2011-6-24 01:03:48 | 显示全部楼层
你上网好好查查触发器的语法就明白了
回复

使用道具 举报

千问 | 2011-6-24 01:03:48 | 显示全部楼层
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行