我想创建一个修订控制系统,对于修订版nr 1的新条目的查询将是这样的:
组合的ID和修订号是主键。
insert into contentfile (id, name, revision, active)
values ((select max(id) +1 from contentfile), 'name', 1, 1)
这是否足够原子,或者是否可能通过该查询的另一个调用同时选择生成的带有子查询的id?
提前致谢。
答案 0 :(得分:1)
不要试图重新发明已经存在的东西。通过将自动增量选项添加到id
字段来修改您的表,然后插入您的记录,如下所示:
INSERT INTO contentfile(name, revision, active) VALUES('name', 1, 1);
MySQL服务器会自动增加id。所有id值都是唯一的。