ここでは mysql5.6系 をベースにしています。
以下のような users テーブルがあったとします。
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'PK',
`name` varchar(255) NOT NULL COMMENT '名前',
`description` text NOT NULL COMMENT '説明',
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='ユーザー'
ここで description
についている NOT NULL制約
を外したい場合、以下の ALTER文を実行することで実現できます。
ALTER TABLE users MODIFY COLUMN description text COMMENT '説明';
[意味]
ALTER TABLE テーブル名 MODIFY COLUMN カラム名 型名 COMMENT 'コメント';
逆に NOT NULL制約
を付けたいときは以下のようにします。
ALTER TABLE users MODIFY COLUMN description text NOT NULL COMMENT '説明';