我尝试为初始化数据库文件创建脚本。
表B和C的行ID应该为A的引用ID。
CREATE TABLE A (val TEXT);
CREATE TABLE B (A_ID NUMBER, val TEXT);
CREATE TABLE C (A_ID NUMBER, val TEXT);
INSERT INTO A (val) values ("x");
INSERT INTO B (A_ID, val) values (LAST_INSERT_ROWID (), "x");
INSERT INTO C (A_ID, val) values (LAST_INSERT_ROWID (), "x");
只要该脚本旁边的B中没有其他插入,这里B和C中的A_ID将与As rowid正确。
那是因为我在B和C的插入中都需要A的行标识。但是LAST_INSERT_ROWID给了我最后一个插入的行标识。那是B插入C的行号。
在纯Sqlite SQL中,如何在B和C的插入中使用A的行标识符? 据我所知,没有变量。