Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Sql命令,用于插入1中大于最大值的值_Mysql_Sql_Postgresql - Fatal编程技术网

Mysql Sql命令,用于插入1中大于最大值的值

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

我需要最小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' )

您可以这样使用:


哪个数据库,MySQL还是PostgreSQL?为什么不使用自动增量/串行来完成这类工作?“你自己正确地管理这件事比你想象的要复杂得多。@muistoshort我闻到了XY的问题。”。虽然下面的代码看起来像是做了你想做的事情,但它不是并发安全的!使用
SERIAL
或数据库的等效自动递增函数。如果(integer,integer,integer)不存在,则获取:函数
INSERT INTO users(id, name) 
VALUES ( (SELECT COALESCE(MAX(id), 0) FROM users) + 1 , 'andrey6' )