我在PostgreSQL中有一個包含2個字段的用戶表:SQL COALESCE處理NULL + 1
ID(int)||名稱(文本)
當我向表格中插入新用戶時,表格應將其ID設置爲ID列表中的下一個索引,即如果列表中的ID是:1,2,3 下一個要添加的用戶將被分配ID = 4.
爲此,我得到表中的最大ID值並遞增,問題是如果表爲空,MAX函數返回空,爲了應對 - 我決定使用COALESCE如下:
INSERT INTO users VALUES COALESCE(0,(SELECT MAX(id) FROM users) + 1), 'Smith');
哪些打算把0的情況下,從MAX函數返回NULL值。
問題是,雖然SELECT MAX(id) FROM USERS
確實返回NULL值,當我添加+1
它會給出錯誤。
這怎麼解決?我有意將它保存在一個查詢中。
這是'COALESCE((SELECT MAX(ID)的使用者),0)+ 1' –
爲什麼MySQL的標籤? – jarlh
在空表的情況下不會放1嗎?我想讓ID從0開始。 –