猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

MySQL で TEXT に DEFAULT を設定する

MySQL 8.4 で、以下のようのな ALTER TABLE を書いたらエラーになった(CREATE TABLE でも同じはず)。

ALTER TABLE user
ADD COLUMN description TEXT NOT NULL DEFAULT '',

エラー内容 (sql-migrate という Go 製のツールを使って ALTER しようとした時のエラーメッセージ)

Error 1101 (42000): BLOB, TEXT, GEOMETRY or JSON column 'description' can't have a default value handling 

正しくはこう書かないとダメらしい

ALTER TABLE user
ADD COLUMN description TEXT NOT NULL DEFAULT (''),