使用SQLite3 api时遇到的外键约束问题

weidai 2011-07-22 12:33:33
表customer

CREATE TABLE [customer] (
[_id] INTEGER PRIMARY KEY,
[name] VARCHAR,
[phone] VARCHAR,
[addr] VARCHAR,
[memo] VARCHAR,
[pinyin_initial] VARCHAR);


表product

CREATE TABLE product(_id INTEGER PRIMARY KEY ASC, name VARCHAR, price VARCHAR, memo VARCHAR, pinyin_initial VARCHAR);


表customer_product

CREATE TABLE [customer_product] (
[_id] INTEGER PRIMARY KEY,
[customer_id] INTEGER CONSTRAINT [f_customer_id] REFERENCES [customer]([_id]) ON DELETE CASCADE ON UPDATE CASCADE,
[product_id] INTEGER CONSTRAINT [f_product_id] REFERENCES [product]([_id]) ON DELETE CASCADE ON UPDATE CASCADE,
[price] VARCHAR,
[memo] VARCHAR);


问题如下:

当我在代码中调用sqlite3 api来执行诸如
delete from product where _id=2

语句后,customer_product中并没有将product_id=2的行自动删除。

但是我使用SQlite Expert来执行同样的SQL语句,customer_product中product_id=2的行会自动删除。

请问高手,这是怎么回事?

先谢过!
...全文
484 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyhnihao 2011-07-29
  • 打赏
  • 举报
回复
sqliet3 需要用触发器实现外键约束

2,208

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧