我正在按照SQLite文档中的说明进行操作http://www.sqlite.org/foreignkeys.html但是,我添加外键的尝试失败了。以下是我的create语句:
CREATE TABLE
checklist (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
checklist_title TEXT,
description TEXT,
created_on INTEGER,
modified_on INTEGER
);
CREATE TABLE
item (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
FOREIGN KEY(checklist_id) REFERENCES checklist(_id),
item_text TEXT, item_hint TEXT,
item_order INTEGER,
created_on INTEGER,
modified_on INTEGER
);
第一张桌子做得很好。错误发生在第二个语句中。我尝试了在事务中包装两个查询和不包装两个查询。这里是错误:
外键定义(代码1)中的未知列“checklist\u id”:编译时:创建表项(\u id INTEGER主键自动递增,外键(checklist\u id)引用了checklist(\u id),项文本,项提示文本,项订单整数,在整数上创建,在整数上修改)
在使用外键()包装列名之前,需要包含列名。
CREATE TABLE
item (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
checklist_id INTEGER,
FOREIGN KEY(checklist_id) REFERENCES checklist(_id),
item_text TEXT, item_hint TEXT,
item_order INTEGER,
created_on INTEGER,
modified_on INTEGER
);
只是您在项目表中缺少了checklist\u id
列。您需要先声明它,然后才能将其设置为外键
。您试图在不存在的列上创建FK
,这就是它无法工作的原因。
因此,您需要添加以下内容:
checklist_id INTEGER,
FOREIGN KEY(checklist_id) REFERENCES checklist(_id)
现在应该管用了。
在将列添加为外键之前,仍然需要创建列检查表\u id INTEGER
。
所以会是:
CREATE TABLE
checklist (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
checklist_title TEXT,
description TEXT,
created_on INTEGER,
modified_on INTEGER
);
CREATE TABLE
item (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
checklist_id INTEGER,
item_text TEXT,
item_hint TEXT,
item_order INTEGER,
created_on INTEGER,
modified_on INTEGER,
FOREIGN KEY(checklist_id) REFERENCES checklist(_id)
);
问题内容: 我不是sql / sqlite的专家。假设我们有两个表: 如何插入?我的createTable操作正确吗?我希望拥有:一个孩子可以养一只以上的狗狗可以养更多的孩子 编辑 如果我想要所有孩子,并为每个孩子列出与该孩子相关的狗的清单,该怎么办? 问题答案: 为了支持一个零个或多个狗的孩子以及一个零个或多个孩子的狗,您的数据库表结构需要支持“ 多对多” 关系。这需要三个表: 如何插入 在三个
我想删除一个用户,所以我尝试了: 但很明显,它根本不起作用,因为它与其他表相连。我不能使用DROP,因为它是SQLite。我上网查了一下,什么也没有... 错误:错误
SQLite是一种基于模式的轻量级关系数据库引擎。 它是用于Web浏览器中本地存储的嵌入式数据库软件的流行选择。 与许多其他数据库管理系统不同,SQLite不是客户端 - 服务器数据库引擎。 有关更多信息,请阅读我们的 SQLite教程 在本章中,您将学习如何使用CoffeeScript与SQLite数据库进行通信。 安装 (Installation) 可以使用node-sqlite3模块将SQL
我想知道。 是否可以在外部存储卡中创建数据库? 更新:-
SQLite 是一个实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 简介 优点 SQLite 是自给自足的,这意味着不需要任何外部的依赖。 SQLite 是无服务器的、零配置的,这意味着不需要安装或管理。 SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于 2
问题 你需要 Node.js 内部与 SQLite 数据库连接的接口。 解决方案 使用 SQLite 模块。 sqlite = require 'sqlite' db = new sqlite.Database # The module uses asynchronous methods, # so we chain the calls the db.execute exampleCreate
Python有一个内置的SQlite支持。 SQlite3模块附带Python发行版。 有关在Python中使用SQLite数据库的详细教程,请参阅此链接 。 在本节中,我们将了解Flask应用程序如何与SQLite交互。 创建一个SQLite数据库'database.db'并在其中创建学生表。 import sqlite3 conn = sqlite3.connect('database.db'
Support for the SQLite database. The following table summarizes current support levels for database release versions. 支持的SQLite版本 The following dialect/DBAPI options are available. Please refer to ind