sqlite 中的递归外键

2023-12-19

sqlite 中是否允许自引用或递归外键?是否有特殊的语法来完成此操作?到目前为止,我已尝试以下方法但无济于事:FOREIGN KEY(ParentPrimaryKeyId) REFERENCES ThisTableName(PrimaryKeyId)

作为参考,我的目标是 iOS 4 中的 sqlite 3.6.22。


是的 sqlite 支持自引用外键,例如:

sqlite> PRAGMA foreign_keys = ON;
sqlite> CREATE TABLE SomeTable (
   ...>     id INTEGER PRIMARY KEY AUTOINCREMENT,
   ...>     parent_id INTEGER, 
   ...>     FOREIGN KEY(parent_id) REFERENCES SomeTable(id));
sqlite> INSERT INTO SomeTable (parent_id) VALUES (234324);
Error: foreign key constraint failed
sqlite> INSERT INTO SomeTable (parent_id) VALUES (NULL);
sqlite> SELECT * FROM SomeTable;
1|
sqlite> INSERT INTO SomeTable (parent_id) VALUES (1);
sqlite> SELECT * FROM SomeTable;
1|
2|1
sqlite> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlite 中的递归外键 的相关文章

  • 为什么在将 SQLite Nuget 包添加到 LINQPad 时收到 DllNotFoundException?

    我已经添加了System Data SQLite CoreNuGet 包到我的 LINQPad 5 Query Premium 然后尝试执行以下命令 new SQLiteConnection memory Dump 但我得到 DllNotF
  • 从哪里开始阅读 SQLite 源代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想了解sqlite是如何实现的 并且 想阅读源代码 我已经下载了源代码 我应该开始查看代码的哪一部分 SQLite文档页 http
  • Sqlite3 查询在 iOS 8.2 下变得非常慢

    我制作了一个可以在应用程序内使用 sqlite 数据库的应用程序 在 iOS 8 2 之前 它工作得很好 但更新后 查询方法的工作速度慢了大约 100 倍 我试图查找有关此问题的信息 但尚未找到任何信息 有人有同样的经历吗 这是我的方法 到
  • 带外键或不带外键的引用有什么区别

    关于SQLite 带外键或不带外键的引用有什么区别 这有什么区别 CREATE TABLE players set id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL player id INTEGE
  • R dbGetQuery 与动态字符串

    From 这个帖子 https stackoverflow com questions 3416973 dynamic string in r and 这个帖子 https stackoverflow com questions 34496
  • 在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小是多少?

    我将图像作为 BLOB 存储在 sqlite 数据库中 谁能告诉我在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小 See the SQLite 的限制 https www sqlite org limits html SQ
  • 在插入 SQLite 之前检查表 B 中的日期是否在表 A 中的日期之间

    我有一个名为 项目 的表 其中包含开始日期和结束日期 我还有一个名为 Plan 的表 它有自己的开始日期和结束日期列 但我通过某种方式验证计划开始 结束日期是否在匹配的项目开始 结束日期之间 我不知道在创建表或向计划表中插入行时添加检查是否
  • Ubuntu 上 sqlite3-ruby 安装错误

    我在 sqlite3 ruby 安装过程中遇到以下错误 Building native extensions This could take a while ERROR Error installing sqlite3 ruby ERROR
  • iOS 5:UIImagePickerController 崩溃

    我面临的问题是UIImagePickerController在 iOS 5 中 我的应用程序开发于iOS4 3但现在我将其升级为iOS5 当我尝试从照片库中选择图像时 我的应用程序崩溃了 它在 main m 文件中崩溃EXE BAD ACC
  • SQL 内连接两个具有相同列名的表

    我有两个表 其列数不同 我不知道有多少列或名称是什么 例如表 A 和表 B TableA ID B ID variable TableB ID variable Query SELECT TableA TableB FROM TableA
  • SQLite 性能基准 - 为什么 :memory: 这么慢...只有磁盘速度的 1.5 倍?

    为什么 sqlite 中的 memory 这么慢 我一直在尝试查看使用内存中的 sqlite 与基于磁盘的 sqlite 是否可以获得任何性能改进 基本上我想用启动时间和内存来换取非常快速的查询not在应用程序过程中击中磁盘 然而 以下基准
  • SQL - 我需要将总值划分为另一个表中的多行

    假设我在 SQL Server 2008 中有以下表 学校桌 School Id Course Id Total Students 1 Acct101 150 1 Acct102 100 2 Acct101 110 2 Acct102 13
  • Android sqlite 缺少列

    我的 SQLite 数据库缺少一个我知道存在的列 我将无法从 Android 模拟器中提取数据库 因为如果不重写大量代码 就无法使用模拟器填充数据库 logcat 返回sqlite returned error code 1 msg tab
  • 同时使用实体框架与 SQL Server 和 SQLite 数据库

    我有一个用于测试目的的 C Net 4 0 控制台应用程序 使用 VS 2012 我的目标是能够创建一个可在 MS SQL Server 数据库和 SQLite 数据库上使用的单个实体框架 edmx 文件 基本上 我想使用相同的实体模型类和
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • 错误:任务“:app:packageDebug”执行失败 - Java 堆空间

    当我尝试构建 APK 时 我在 Android Studio 日志中收到此错误 错误 任务 app packageDebug 执行失败 Java堆空间 当我尝试在资产目录中构建 350 MB 大小的 sqlite 的 APK 时 就会出现此
  • 如何在 UILabel.text 中添加制表符空间

    我有一个 UILabel 实例 比如 mylabel 我想做的是这样的 mylabel text Age tLimit tYear instead of mylabel text Age Limit Year 但当我尝试时 t 未被识别 如
  • SQLite - 左连接

    我需要进行这样的查询 SELECT table1 table2 column FROM table1 LEFT JOIN table2 ON table1 column table2 column 但这不起作用 如果我尝试相同的查询但替换第
  • SQlite 获取最近的位置(带有纬度和经度)

    我的 SQLite 数据库中存储有纬度和经度的数据 我想获取距我输入的参数最近的位置 例如我当前的位置 纬度 经度等 我知道这在 MySQL 中是可能的 并且我已经做了相当多的研究 SQLite 需要一个自定义外部函数来实现半正弦公式 计算
  • 滑动删除不起作用

    滑动删除功能在我的表格视图中不起作用 我已经在导航栏中实现了 commitEditingStyle 委托和编辑按钮 因此 当用户单击编辑按钮时 删除和添加按钮会相应显示 但是 在滑动时 删除按钮不会出现 并且似乎它无法将滑动识别为对 set

随机推荐