使用混合语法设置多个主键



我目前正在使用强制混合语法的多个主键。我正在编写的脚本应该复制一个远程数据库,但我需要向表中添加另一个主键。

新密钥必须是";"整数自动递增"-钥匙

";创建表格"-来自远程数据库的语句当前如下:

CREATE TABLE "Table_1" (id text, ord text, mod_date TEXT, val TEXT, PRIMARY KEY (id,ord));

我尝试但失败的是以下修改:

CREATE TABLE "Table_1" (_id INTEGER PRIMARY KEY AUTOINCREMENT, id text, ord text, mod_date TEXT, val TEXT, PRIMARY KEY (id,ord));

有没有一种方法可以实现这一点,或者我必须写一个函数来解压缩";主键(…("-部件能够设置";PRIMARY KEY"-每个主键的语句?

一个表中不能有两个主键
您已将主键定义为PRIMARY KEY (id,ord)

但是SQLite确实提供了您所需要的,因为所有不是用WITHOUT ROWID创建的表都是Rowid tables
因此,您的表中已经有一个名为rowid的自动递增列,您可以使用它,尽管它没有在表的CREATE语句中定义
这实际上是:

rowid表的真正主键(用作在底层B树存储引擎中查找行的键(

最新更新