CockroachDB 中的自动增量支持

Posted

技术标签:

【中文标题】CockroachDB 中的自动增量支持【英文标题】:Auto-increment support in CockroachDB 【发布时间】:2017-09-05 21:42:55 【问题描述】:

mysql 中,我可以使用 AUTO INCREMENT 为我的应用程序的客户生成唯一 ID。使用 CockroachDB 时如何获得类似的功能?

【问题讨论】:

【参考方案1】:

应用程序不能使用像SEQUENCEAUTO_INCREMENT 这样的结构,并且还期望水平可伸缩性——这是任何分布式数据库的普遍限制。相反,CockroachDB 提供了自己的 SERIAL 类型,该类型生成递增但不一定连续的值。

例如,您将使用: CREATE TABLE customers (id SERIAL PRIMARY KEY, name STRING); 然后当你插入值时,你会使用类似的东西: INSERT INTO customers (name) VALUES ('Kira Randell') RETURNING id; 这将返回随机生成的 ID,您可以在应用程序的其他地方使用它

【讨论】:

谢谢,很好的答案。实际上,SERIAL 不生成连续值并不罕见,因为其他 SQL 数据库经常因为缓存序列或回滚插入的问题而留下间隙。

以上是关于CockroachDB 中的自动增量支持的主要内容,如果未能解决你的问题,请参考以下文章

CockroachDB 支持全文搜索吗?

在 CockroachDB 中删除数据库中的所有表

CockroachDB 中的 DESCRIBE TABLE 等效项?

如何加快 CockroachDB 中的插入性能

从 CockroachDB 中的“SELECT”返回随机行

CockroachDB 中的行级锁定