首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >复合主键上的自动增量 - Sqlite3 + Python

复合主键上的自动增量 - Sqlite3 + Python
EN

Stack Overflow用户
提问于 2018-09-17 06:46:29
回答 1查看 0关注 0票数 0

我有这样的代码

代码语言:javascript
复制
c.execute('CREATE TABLE IF NOT EXISTS base (ID INTEGER NOT NULL, col2 TEXT NOT NULL, col3 INTEGER, PRIMARY KEY(ID, col2))')

这段代码给了我一个sqlite3.IntegrityError异常,即使我非常确定我是第一次写这个记录。

所以,我试过了

代码语言:javascript
复制
c.execute('CREATE TABLE IF NOT EXISTS base (ID INTEGER, col2 TEXT, col3 INTEGER, PRIMARY KEY(ID, col2))')

这会在表BUT中精细插入行,ID列根本不会自动递增。

我能做什么?任何想法?

EN

回答 1

Stack Overflow用户

发布于 2018-09-17 16:37:57

在sqlite中,只有一个整数列是主键时才会获得自动增量行为。复合键可防止自动增量生效。

您可以通过定义id唯一的主键,但随后添加其他唯一约束来获得类似的结果id, col3

如果那仍然不是你想要的(比如,id根本不需要是唯一的),你可能必须使用触发器来使自动增量工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档