sqlite 我添加了主外键,成功了,但是删除主表的数据,外键的数据没有删除
例如工厂表和工人表,我删除了工厂,工人表里面还是有数据而且外键工厂_id还是在,siqlte主外键是不是还是需要什么东西啊。触发器,视图什么的?...
例如工厂表 和工人表,我删除了工厂,工人表里面还是有数据而且外键工厂_id还是在,siqlte主外键是不是还是需要什么东西啊。触发器,视图什么的?
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
2个回答
推荐于2016-01-20
展开全部
-- 创建测试主表. ID 是主键.
CREATE TABLE test_main (
id INT NOT NULL,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 插入测试主表数据.
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');
-- 创建测试子表. ( 注意, 这里要有一个 ON DELETE CASCADE )
CREATE TABLE test_sub (
id INT PRIMARY KEY,
main_id INT REFERENCES test_main(id) ON DELETE CASCADE,
value VARCHAR(10)
);
-- 插入测试子表数据.
INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');
-- 测试删除主表.
sqlite> DELETE FROM test_main WHERE id = 1;
-- 查看 子表数据是否被删除.
sqlite> select * from test_sub;
2|2|TWOTWO
追问
是成功了但是主要问题我的id是自增主键,比如主表两条数据1,2.子表一条数据1,对应主表的1,这时候删除主表1的数据,那么原来的2就会变成1,那么主表还是有1这条数据,子表能对应的到,它就不会去删除数据了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询