sqlite外键约束不执行

3视图(30天)
杰夫•米勒
杰夫•米勒 2021年2月4日
回答: 杰夫•米勒 2021年2月12日
我的问题是如何让MATLAB的sqlite数据库执行外键约束。
这是一个最小的工作示例说明我想应该工作,但是不(我新这个东西,所以我在做一个明显的错误):
dbFile =“fkcheck.db”;
康涅狄格州= sqlite (dbFile,“创建”);
% exec(康涅狄格州,“杂注foreign_keys =在');%使这条线没有区别
%创建一个“艺术家”表;之后,一个外键将参考此表。
sCreateTbl1 =“创建表的艺术家(artistid整数主键自动增量,artistname文本)”;
exec(康涅狄格州,sCreateTbl1);
%创建一个“记录”表的外键引用艺术家艺术家表中的ID
sCreateTbl2 = [“创建表跟踪(trackid整数主键自动增量,trackname文本”,
“trackartist整数,外键(trackartist)引用艺术家(artistid))”];
exec(康涅狄格州,sCreateTbl2);
%艺术家加载到艺术家表,这样它不是空的。
插入(康涅狄格州,“艺术家”,{“artistname”},{“平克·弗洛伊德”});
%加载一个跟踪到跟踪表中。
%这插入失败,因为它给出了一个不存在的外键值(77)。
%但插入并不失败,和结果跟踪表
%与trackartist = 77行。
插入(康涅狄格州,“跟踪”,{“trackname”,“trackartist”},{“钱”77});
关闭(康涅狄格州);
我发现 这个链接 从2016年一个类似的问题。说答案中有一个bug数据库工具箱R2015b,但解决方法建议失败2020(数据库工具箱版本9.2.1)因为“康涅狄格州”没有“处理”属性。
所以,我怎样才能MATLAB的sqlite数据库执行外键约束?
谢谢。

答案(1)

杰夫•米勒
杰夫•米勒 2021年2月12日
以防别人感兴趣,这就是答案从MATLAB技术支持:万博1manbetx
这是一个错误在执行编译指示查询使用exec ()。
我们将工作在这个问题上为即将到来的未来版本解决这个错误。
然而,解决了这个问题:

标签

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!