gpt4 book ai didi

mysql - 合并在空表的插入语句中不起作用

转载 作者:行者123 更新时间:2023-11-29 06:34:47 25 4
gpt4 key购买 nike

我尝试使用 SQL 中的合并函数来避免在将具有自动递增 uid 的行插入到空表中时出现错误。但是,以下代码仍然给我:

"cannot insert the value null into column 'TABLE_ONE_UID'".

cmdEx.ExecuteNonQuery(
"INSERT INTO TABLE_ONE
(TABLE_ONE_UID, USER_UID, SHT_DATE,
C_S_UID, CST_DATE,
CET_DATE, S_M, PGS)
VALUES ((SELECT MAX(COALESCE(TABLE_ONE_UID, 0)) + 1
FROM TABLE_ONE),
127, '2009-06-15T13:45:30',
0, '2009-06-15T13:45:30','2010-06-15T13:45:30',
'TEST DELETE THIS ROW', 0 )");

最佳答案

解决此问题的正确方法是使用 auto_increment 列:

create table PMS_CALC_SCHEDULE (
PMS_CALC_SCHEDULE_UID int auto_increment primary key,
. . .
);

如果出于某种原因,您想自己进行计算,使代码受到竞争条件的影响,并且插入速度较慢,那么您需要在正确的位置进行合并:

INSERT INTO PMS_CALC_SCHEDULE (PMS_CALC_SCHEDULE_UID, . . .) 
SELECT COALESCE(MAX(PMS_CALC_SCHEDULE_UID), 0) + 1,
. . .
FROM PMS_CALC_SCHEDULE ;

关于mysql - 合并在空表的插入语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54440098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com