Mysql Sql命令,用于插入1中大于最大值的值
我需要最小id为0(零) 我试过这样的方法:Mysql Sql命令,用于插入1中大于最大值的值,mysql,sql,postgresql,Mysql,Sql,Postgresql,我需要最小id为0(零) 我试过这样的方法: INSERT INTO users(id, name) VALUES ( (SELECT MAX(id) FROM users) + 1 , 'andrey6' ) 但是当“users”表为空时,我遇到了一个问题,我就是不知道如何将最小值保持为0。这是否符合您的要求: INSERT INTO users(id, name) VALUES ( (SELECT IFNULL(MAX(id) + 1,0) FROM users) , 'andrey6
INSERT INTO users(id, name)
VALUES ( (SELECT MAX(id) FROM users) + 1 , 'andrey6' )
但是当“users”表为空时,我遇到了一个问题,我就是不知道如何将最小值保持为0。这是否符合您的要求:
INSERT INTO users(id, name)
VALUES ( (SELECT IFNULL(MAX(id) + 1,0) FROM users) , 'andrey6' )
?您可以这样使用:
哪个数据库,MySQL还是PostgreSQL?为什么不使用自动增量/串行来完成这类工作?“你自己正确地管理这件事比你想象的要复杂得多。@muistoshort我闻到了XY的问题。”。虽然下面的代码看起来像是做了你想做的事情,但它不是并发安全的!使用
SERIAL
或数据库的等效自动递增函数。如果(integer,integer,integer)不存在,则获取:函数
INSERT INTO users(id, name)
VALUES ( (SELECT COALESCE(MAX(id), 0) FROM users) + 1 , 'andrey6' )