gpt4 book ai didi

MySQL 使用 select max (`Column` )+1 插入可能为空的结果

转载 作者:行者123 更新时间:2023-11-29 19:12:20 25 4
gpt4 key购买 nike

我见过很多与我的问题类似的问题,但它们与我的问题并不完全相同。

这是我的查询:

insert into`quotes`(`QuoteID`,`QuoteRequestID`,`Number`,`UserID`,`Viewed`,
`_Latest`)
select uuid(),uuid(),
ifnull(max(`quotes`.`Number`),0)+1,'Some User ID',1,1
from`quotes`
join`quoterequests`using(`QuoteRequestID`)
where`quoterequests`.`UserID`='Some User Other ID';

这是我收到的错误:

Error Code: 1048. Column 'QuoteID' cannot be null

所以我的猜测是 select 语句没有返回任何内容,但是既然我在查询中使用了 max() ,那怎么可能呢?

果然,如果我删除 insert 部分并仅运行 select 语句本身,那么我确实会得到预期的结果,以及新的 UUID(绝对不是空值)等。这里发生了什么?这是 MySQL 的错误吗?我的MySQL版本是5.7.14;

<小时/>

编辑

所以我已经弄清楚如果我将选择包装在另一个选择中,它现在可以按预期工作。虽然不确定这是否是解决方案或解决方法,但它确实使我的查询正常工作。

最佳答案

看起来您可能有一些触发器会生成错误 - 这是我能想到的唯一解释。

关于MySQL 使用 select max (`Column` )+1 插入可能为空的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42982653/

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