hBr*_*ent 43 sqlite android-sqlite
我正在创建一个包含外键引用的表.我想知道所需的语法.大多数情况下,我见过以下内容(来自http://www.sqlite.org/foreignkeys.html#fk_basics):
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
Run Code Online (Sandbox Code Playgroud)
但是,从同一个站点(http://www.sqlite.org/foreignkeys.html#fk_actions)我看到:
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER REFERENCES artist(artistid) ON UPDATE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
后一种语法更简洁,但我想知道结果是否有所不同(除了ON UPDATE CASCADE,当然有效果;我只包括它,因为我完全从引用的网站复制代码,因为我不知道上面的语法只在制作这样的规范时才适用).我在Android工作,如果重要的话.
war*_*ero 34
这个答案可能与您的答案无关,但我认为它应该对使用android数据库的其他人有所帮助.
IN SQLite默认情况下禁用外键约束(为了向后兼容).您必须明确使用它
PRAGMA foreign_keys = 1
Run Code Online (Sandbox Code Playgroud)
与数据库建立连接后.这是官方文档的链接,可以更深入地解释它. http://sqlite.org/foreignkeys.html 请导航到上述链接中启用外键支持.
| 归档时间: |
|
| 查看次数: |
51467 次 |
| 最近记录: |