我找到了几个关于 Mysql批量更新的问题和答案。并从这些问题中找到了很好的解决方案 - question1,question2。
所以我的表看起来像这样。
订户
名字 | 姓氏 | subscriberid | inactivereason | statusflag
下面,
名字 => VARCHAR - 不为空
姓氏 => VARCHAR - 不为空
subscriberid => BIGINT - 主键,非空,唯一
inactivereason => VARCHAR - NULL(默认)
statusflag => ENUM('是','否') - 不为空
我使用了以下查询。
INSERT INTO subscriber (subscriberid,inactivereason,statusflag) VALUES (1002,"nothing","YES"),(1003,"NO Reason","YES"),(1004,"No valid Data","YES"),(1001,"Poor quality","YES")
ON DUPLICATE KEY UPDATE inactivereason=VALUES(inactivereason),statusflag=VALUES(statusflag);
但我收到以下错误
错误代码:1364。字段'名字'没有默认值
但我无法为firstname
设置任何默认值。这是强制性的吗?
那我怎么解决这个问题呢?我无法承担性能风险,因为我有超过10万的订阅者。
请建议我最好的方法。