TL;DR
- NULLが入っているカラムを後から
NOT NULL
にしようとすると出る - 何故出るかというと、 INSERT IGNORE INTOがNOT NULL DEFAULTを裏切る
から敢えて
SHOW WARNINGS
を拾ってエラーにしている- 裏切られるのを承知の上で強行するなら
pt-online-schema-change --null-to-not-null
でいける
- 裏切られるのを承知の上で強行するなら
-
UPDATE t1 SET val = ? WHERE val IS NULL
でNULLを排除してからpt-online-schema-changeすればいいんじゃないかな
日々の覚書: INSERT IGNORE INTOがNOT NULL DEFAULTを裏切る の続き。
pt-oscは INSERT …