Sqlite 如何忽略删除时的外键限制?
我必须删除表,并且使用外键限制集,如果我尝试删除第一个表中用作第二个表中FK的记录,则不会采取任何操作。我想要这种行为 问题是当我有很多这样的T-SQL时:Sqlite 如何忽略删除时的外键限制?,sqlite,c#-4.0,sql-delete,Sqlite,C# 4.0,Sql Delete,我必须删除表,并且使用外键限制集,如果我尝试删除第一个表中用作第二个表中FK的记录,则不会采取任何操作。我想要这种行为 问题是当我有很多这样的T-SQL时: strTSQL = "delete or ignore from Ficheros where IDFichero = 28" strTSQL = strTSQL + ";delete or ignore from Ficheros where IDFichero = 27" 如果第一个T-SQL失败,则不会执行下一个查询。我想执行下一个
strTSQL = "delete or ignore from Ficheros where IDFichero = 28"
strTSQL = strTSQL + ";delete or ignore from Ficheros where IDFichero = 27"
如果第一个T-SQL失败,则不会执行下一个查询。我想执行下一个查询,尽管第一个查询失败
在插入中,我可以使用:
在…中插入或忽略
在这种情况下,如果我尝试插入违反唯一约束的记录,请忽略该错误并继续执行下一个T-SQL,但使用delete时,我找不到执行该操作的方法。您可以单独执行delete语句并忽略FK约束错误 或者,事先检查是否会发生违反合同的情况: 从Ficheros中删除 在27,28。。。 不存在,请选择1 从儿童桌 其中ChildTable.IDFichero=Ficheros.IDFichero
是的,要逐个删除每个语句,这是一个选项,但我需要N次往返数据库。真的没关系,因为SQLite是一个本地数据库,但我正在寻找另一个解决方案。另外,如果一个用户检查是否存在,并检查28是否不存在,但在删除另一个用户设置28的关系之前,我会遇到同样的问题。