Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Php 为什么默认情况下在sqlite中禁用约束?_Php_Sqlite_Pdo - Fatal编程技术网

Php 为什么默认情况下在sqlite中禁用约束?

Php 为什么默认情况下在sqlite中禁用约束?,php,sqlite,pdo,Php,Sqlite,Pdo,您必须运行PRAGMA foreign\u keys=ON才能启用它 为什么??这是因为sqlite中的这个特性有缺陷吗?我这样问是因为我遇到了数据完整性问题。我有时会在不应该发生的情况下出现“完整性约束冲突”错误。这不是错误。只是许多用户不需要严格的约束。SQLite是软件的一部分它没有缺陷。只是许多用户不需要严格的约束。SQLite是一种软件,它来自: 默认情况下禁用外键约束(用于向后 兼容性),因此必须为每个数据库单独启用 单独连接 从: 默认情况下禁用外键约束(用于向后 兼容性),因此必

您必须运行
PRAGMA foreign\u keys=ON
才能启用它


为什么??这是因为sqlite中的这个特性有缺陷吗?我这样问是因为我遇到了数据完整性问题。我有时会在不应该发生的情况下出现“完整性约束冲突”错误。

这不是错误。只是许多用户不需要严格的约束。SQLite是软件的一部分

它没有缺陷。只是许多用户不需要严格的约束。SQLite是一种软件,它来自:

默认情况下禁用外键约束(用于向后 兼容性),因此必须为每个数据库单独启用 单独连接

从:

默认情况下禁用外键约束(用于向后 兼容性),因此必须为每个数据库单独启用 单独连接


这可能是一个性能特性。要求您选择外键检查开销。该功能也相对较新(于2009年底推出)。以前没有这样的东西,约束被忽略了,所以默认值是有意义的。它可能是一个性能特性。要求您选择外键检查开销。该功能也相对较新(于2009年底推出)。以前没有这样的事情,约束被忽略,所以默认设置是有意义的。