Android Sqlite table 列外键?

Android Sqlite table column foreign keys?

我正在为我的 android 项目创建一个相当简单的 sqlite 数据库。好久没写msql命令了,更不用说sqlite了。

为了让这个问题简单化,假设我有两个 table。一个 table 用于 dogs,另一个用于 owners

dogs 中将有一列用于保存所有者的 _id,这将是另一个 table 的主键。

我这辈子都记不起如何在 sqlite 中执行此操作,或者如果我能记起的话。

我正在用这个字符串创建狗 table :

private static final String CREATE_TABLE_DOGS = "CREATE TABLE"
            + TABLE_DOGS + "(" + COLUMN_ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_NAME + " TEXT NOT NULL, "
            + COLUMN_OWNER + " INTEGER );";

SQLite 默认不启用外键。每次使用数据库前都需要执行pragma FOREIGN_KEYS=ON;

要创建实际的外键关系,请像这样为您的狗 table 添加一列:FOREIGN KEY(owners_id) REFERENCES owners(_id)。您还应该定义约束违规规则。

有关 SQLite 外键的更多信息,请查看 https://www.sqlite.org/foreignkeys.html