mysql修改表、字段的字符集、排序規則

先用下面的語句生成腳本,再運行腳本

1. 某個schema中所有表字段爲varchar類型的字符集使用UTF8,排序規則使用utf8_general_ci

SELECT
	CONCAT(
		'ALTER TABLE `',
		TABLE_NAME,
		'` MODIFY `',
		COLUMN_NAME,
		'` ',
		DATA_TYPE,
		'(',
		CHARACTER_MAXIMUM_LENGTH,
		') CHARACTER SET UTF8 COLLATE utf8_general_ci',
		(
			CASE
			WHEN IS_NULLABLE = 'NO' THEN
				' NOT NULL'
			ELSE
				''
			END
		),
		';'
	)
FROM
	information_schema. COLUMNS
WHERE
	TABLE_SCHEMA = 'table_name'
AND DATA_TYPE = 'varchar'
AND (
	CHARACTER_SET_NAME != 'utf8'
	OR COLLATION_NAME != 'utf8_general_ci'
);

2. 某個schema中所有表的字符集使用UTF8,排序規則使用utf8_general_ci

SELECT
	CONCAT(
		'ALTER TABLE ',
		TABLE_NAME,
		' CONVERT TO CHARACTER SET  utf8 COLLATE utf8_general_ci;'
	)
FROM
	information_schema. TABLES
WHERE
	TABLE_SCHEMA = 'schema_name';


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章