为什么即使有主键,我们也要创建序列呢?

推荐答案

主键是表中的一列.

主键需要一个唯一的值,它需要来自某个地方.

序列是某些数据库产品的一个功能,它只创建唯一的值.它只是递增一个值并返回它.它的特殊之处在于:没有事务隔离,因此多个事务无法获得相同的值,增量也不会回滚.没有数据库序列,很难生成唯一的递增数字.

其他数据库产品支持使用递增数字自动初始化的列.

还有其他方法可以为主键创建唯一的值,例如guid.

Database相关问答推荐

如何在Ballina中的事务失败时回滚缓存插入操作

Rust 全局存储数据库连接

如何将初始数据放入数据库

如何从 PostgreSQL 触发器发送邮箱?

PostgreSQL 是否对只读事务进行了一些性能优化

通过删除执行计划中的排序运算符来优化 SQL 查询

错误:mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

将 `tsv` 文件插入 postgresql 数据库

使用 Flask 时 Python 中持久数据库连接的最佳实践

Neo4j:逐步创建自动索引

South migration error: NoMigrations exception for django.contrib.auth

从旧数据 struct 到新数据 struct 的数据迁移

使用 PDO 获取单行单列

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

数据库模式与数据库表空间?

使用 C3P0 的 JDBC 连接池

SQLite3 UNIQUE 约束失败错误

为什么在数据库设计中使用一对一的关系?

如何从多个表中 Select 不同的值

无需安装的轻量级 SQL 数据库