我有这样的表结构:
users
smf, user_id, group_id, status
对于每个查询,smf的值应该随当前最大值+随机数而增加。
这是查询
INSERT INTO users SELECT(SELECT MAX(smf) + FLOOR(RAND() * 15 from invoices ), 0, 0, '1''
我的第一个问题是关于如何保持并发完整性正确(max(id)可能不会给我插入的最后一行,因为其他人可能已插入,因为我做了。)
我的第二个问题是如何在不运行第二个查询的情况下获取FLOOR(RAND() * 15
的值?
答案 0 :(得分:1)
如果您的表具有自动增量字段,则可以使用mysq的last_insert_id来确定新行的内容并获取新值。在将代码插入数据库之前,您还可以在代码中生成随机数。