Mysql 原子 id 增量

标签 mysql

我想创建一个版本控制系统,并且对版本号为 1 的新条目的查询如下所示:

ID 和修订号组合起来就是主键。

insert into contentfile (id, name, revision, active) 
values ((select max(id) +1 from contentfile), 'name', 1, 1)

这是否足够原子化,或者子查询生成的 id 是否可能同时被该查询的另一个调用选择?

提前致谢。

最佳答案

不要尝试重新发明已经存在的东西。通过向 id 字段添加自动增量选项来修改表,然后插入记录,如下所示:

INSERT INTO contentfile(name, revision, active) VALUES('name', 1, 1);

该 id 将由 MySQL 服务器自动递增。所有 id 值都是唯一的。

关于Mysql 原子 id 增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949763/

相关文章:

android - 为什么我会从此方法中获得重复的记录?

sql - 添加时间间隔并跳过一定时期

php - MYSQL查询每个用户的行数

mysql - 确定 MySQL 中的默认数据库字符集和排序规则

php - 通过php将xml数据插入mysql数据库

php - MySQL 选择 SUM JOIN WHERE 在一起不起作用

php - MYSQL用php移动信息

php - 很多查询 - 慢?

mysql - 直接在主表中有一个BLOB字段是否正确?

mysql - 使用可能为空的聚合函数获取一行数据