我使用外键引用创建表。我想知道所需的语法。主要是我见过以下(从http://www.sqlite.org/foreignkeys.html#fk_basics):使用外键创建表的SQLite语法
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
然而,来自同一站点(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
);
后者语法是有点更简洁,但我想知道结果是否有所不同(除了ON UPDATE CASCADE
,这当然有效;我只是将它包括在内,因为我完全从引用的网站复制了代码,并且因为我不知道上述语法没有这样做)只有在制定这样的规范时才适用)。我正在使用Android,以防万一。
嗨War_Hero,我得到的外键为nulls.Can你请看看它。这些是我的2个表格表1 - 最终字符串DATABASE_CREATE_TABLE =“创建表,如果不存在scannerValuess(id整数,partName文本null,成本文本null,外键(id)引用scannerUserValuess(userid))“;表2 - 最终字符串DATABASE_CREATE_TABLE_USER =“如果不存在,创建表scannerUserValuess(userid整数主键自动增量,名称文本非空,移动文本非空,地址文本非空,日期文本非空)”;请尽快帮我。提前感谢。 – Naveen