升级至MySQL 8.0.36后UPDATE查询随机触发非空约束错误求助
MySQL 8.0.36升级后随机触发非空约束异常
近期将MySQL版本升级至8.0.36后出现异常:部分原本正常的查询会随机失败并返回错误,重新执行有时又能成功。
示例查询:
UPDATE `Members` set `ProZipCode` = 75001, `ProCity` = 'Paris', `ActivationCode` = 'AAA-15372695', `State` = 1 WHERE `MemberId` = 42;
连续执行该查询10次,约6次成功、4次随机抛出如下错误(Laravel和phpMyAdmin中均出现):
Integrity constraint violation : Column 'ActivationCode' cannot be null
补充说明:
ActivationCode为varchar(255) NOT NULL类型字段- 表中无外键,仅存在一个生成MemberHash的BEFORE INSERT触发器,无其他事件、锁等
- 手动或通过API连续执行完全相同的查询
ActivationCode由查询手动指定,非自动生成- 数据库部署在Google Cloud SQL,配置参数:log_bin_trust_function_creators=on,sql_mode=NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES,explicit_default_for_timestamp=off
- 其他服务器部署在Cloud Run
- 无法将字段改为允许NULL,因该问题出现在多列/多张表中
内容的提问来源于stack exchange,提问作者maxliguge
相关产品推荐
相关产品推荐

