Android Sqlite表列外键?

时间:2015-04-29 16:17:40

标签: android android-sqlite

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

为了简化这个问题,我们可以说我有两张桌子。 module.exports = require('waterlock').waterlocked({ register: function(req, res) { var params = req.params.all(), def = waterlock.Auth.definition, criteria = { }, scopeKey = def.email !== undefined ? 'email' : 'username'; var attr = { password: params.password } attr[scopeKey] = params[scopeKey]; criteria[scopeKey] = attr[scopeKey]; waterlock.engine.findAuth(criteria, function(err, user) { if (user) return res.badRequest("User already exists"); else waterlock.engine.findOrCreateAuth(criteria, attr, function(err, user) { if (err) return res.badRequest(err); delete user.password; return res.ok(user); }); }); } }); 的一个表格和dogs的另一个表格。

owners中,将有一列用于保存所有者的dogs,该列将是另一个表中的主键。

我不能为我的生活记住如何在sqlite中做到这一点,或者我甚至可以。

我正在用这个String创建狗表:

_id

1 个答案:

答案 0 :(得分:4)

SQLite默认情况下没有启用外键。在使用数据库之前,您每次都需要执行pragma FOREIGN_KEYS=ON;

要创建实际的外键关系,请在dog表中添加一列,如下所示:FOREIGN KEY(owners_id) REFERENCES owners(_id)。您还应该为违反约束定义规则。

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