在 MySQL 中有条件地在列中插入值

Insert value in a column conditionally in MySQL

我有一个 table 人,列为 PersonIdFirstNameDeptIdCityPersonId 是主键。

默认情况下,第一次插入时,我希望 DeptId 的第一个条目的值为 3000。并且后续条目应始终在 DeptId.

的最后一个值上递增

有人可以在 MySQL 中帮助我吗?

1 John 3000 Port Mathurin
2 James 3001 Port Desny

insert into `Persons` (`PersonID`, `FirstName`, `DeptId`, `City`) VALUES (1, 'Job', select `DeptId` from `Persons` +1, 'Port Mathurin)

而不是 INSERT ... VALUES 使用 INSERT ... SELECT 到 select 来自 Persons 的最大值 DeptId:

INSERT INTO Persons (PersonID, FirstName, DeptId, City) 
SELECT 1, 'Job', COALESCE(MAX(DeptId), 2999) + 1, 'Port Mathurin' 
FROM Persons;
当 table 为空时,

COALESCE() 将 return 2999,对于 +1,结果将是 3000 table.

第一行的 13=]