加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

一个表上的SQLite多主键,其中之一是自动增量

发布时间:2020-12-12 19:10:27 所属栏目:百科 来源:网络整理
导读:表上有多个(复合)主键,其中一个将自动递增.但是,有趣的是,SQLite允许在强制PRIMARY KEY关键字之后使用AUTOINCREMENT关键字. 我的查询是: CREATE TABLE ticket ( id INTEGER PRIMARY KEY AUTOINCREMENT,seat TEXT,payment INTEGER,PRIMARY KEY (id,seat)) 但
表上有多个(复合)主键,其中一个将自动递增.但是,有趣的是,SQLite允许在强制PRIMARY KEY关键字之后使用AUTOINCREMENT关键字.

我的查询是:

CREATE TABLE ticket (
     id INTEGER PRIMARY KEY AUTOINCREMENT,seat TEXT,payment INTEGER,PRIMARY KEY (id,seat))

但是错误是表“ticket”有多个主键.

其实我可以避免这个表的其他主键.但是我正在编写一个ORM框架(我真的很疯狂),并且不想改变一个表的PRIMARY KEY约束生成的结构(因为它是在MySQL afaik中允许的).

你知道任何解决方案吗?

不,我不认为这是可能的.

您可以创建一个独一无二的INDEX,它具有与PRIMARY KEY基本相同的效果:

CREATE UNIQUE INDEX pk_index ON "table1"("field1","field2");

此外,我看不到您的架构的逻辑,也就是 – >如果列是自动增量,并且您不打算手动混淆值,它将是唯一的,所以它是一个很好的简单的短主键.为什么复合?尽管如此,您可能有很好的理由为列组合创建另一个索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读