Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 如何忽略删除时的外键限制?_Sqlite_C# 4.0_Sql Delete - Fatal编程技术网

Sqlite 如何忽略删除时的外键限制?

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失败,则不会执行下一个查询。我想执行下一个

我必须删除表,并且使用外键限制集,如果我尝试删除第一个表中用作第二个表中FK的记录,则不会采取任何操作。我想要这种行为

问题是当我有很多这样的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的关系之前,我会遇到同样的问题。