【问题标题】:Column order in SQLite databaseSQLite 数据库中的列顺序
【发布时间】:2018-04-09 02:24:37
【问题描述】:

在 Android 上使用 SQLite 数据库。为什么这个表创建语句会起作用

CREATE TABLE Person 
(
    _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    event INTEGER,
    biography TEXT,
    FOREIGN KEY(event) REFERENCES Event(_id) ON DELETE CASCADE
);

而这个没有?

CREATE TABLE Person 
(
    _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    event INTEGER,
    FOREIGN KEY(event) REFERENCES Event(_id) ON DELETE CASCADE,
    biography TEXT
);

根据this SO Q/A,有些人将外键放在常规属性之前,但我无法做到这一点。

例如,您可以尝试Sqlite BrowserSQL Fiddle

【问题讨论】:

    标签: android sqlite foreign-keys android-sqlite create-table


    【解决方案1】:
    FOREIGN KEY(event) REFERENCES Event(_id) ON DELETE CASCADE
    

    这是一个表约束,SQL syntax as understood by sqlite 要求它们位于列定义之后:

    您链接的问题是关于 FK 列,而不是表约束。 event 是表中的 FK 列。

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 2016-04-07
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多