背景
ビジネス シナリオにより、phone_name などの特定のフィールドには多くのテーブルが含まれていますが、初期段階で提供されるフィールドの長さは varchar(100) のみであり、すべてのテーブルのニーズを満たしていません。フィールド長が varchar(255) まで増えてしまったので、手動で一つ一つ変更するとテーブルが数百個になってしまい、非常に手間がかかるので、以下の方法を考えてメモしました。
プラン
これらのテーブルでこのフィールドを必須にする DDL ステートメントを変更します。
- SELECT
- concat("ALTER TABLE `",table_name,"` MODIFY COLUMN `phone_name` varchar(255) NOT NULL COMMENT '手机名称';")
- FROM information_schema.columns
- WHERE
- table_schema = 'db_lingyejun' and column_name='phone_name' and character_maximum_length < 255 and is_nullable = 'NO';
これらのテーブルでこのフィールドを NULL 可能にする DDL ステートメントを変更します。
- SELECT
- concat("ALTER TABLE `",table_name,"` MODIFY COLUMN `phone_name` varchar(255) DEFULT NULL COMMENT '手机名称';")
- FROM information_schema.columns
- WHERE
- table_schema = 'db_lingyejun' and column_name='phone_name' and character_maximum_length < 255 and is_nullable = 'YES';
この記事がお役に立ちましたら、「Ling Yejun」に「いいね!」をお願いします。応援よろしくお願いします。