我尝试插入一行新数据,并使用max()+1设置customer_id。这样做的原因是该表中另一个列名为id的列已经有了自动增长,因此该表将会有多行具有相同的customer_id。
以下是实现代码:
INSERT INTO customers
( customer_id, firstname, surname )
VALUES
((SELECT MAX( customer_id ) FROM customers) +1, 'jim', 'sock')
我一直收到以下错误:
#1093 - You can't specify target table 'customers' for update in FROM clause
我应该如何防止同时添加两个不同的客户并且他们没有相同的customer_id?
INSERT
,那么它就是一个原子操作并且是竞争安全的? - XenosWHERE
子句,它限制了我的返回结果到一个特定的子集,所以我认为我相对安全,不会出现竞态条件...对吧? - HPWD