0

我想创建一个修订控制系统,并且对修订版 nr 1 的新条目的查询将如下所示:

id 和修订号结合起来是主键。

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

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

提前致谢。

4

1 回答 1

1

不要试图重新发明已经存在的东西。通过将自动增量选项添加到id字段来修改您的表,然后像这样插入您的记录:

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

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

于 2012-08-14T10:45:51.770 回答