天天看點

記錄實際項目中使用過的Mysql的腳本

一、修改資料庫編碼及字元集(比較簡單,在可視化工具中直接改了,也可以使用如下指令)

-- 可直接複制運作
ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin; 
-- 參數解釋:
    -- db_name 資料庫名;
    -- utf8mb4 改後的字元集
    -- utf8mb4_bin 改後的排序規則      

二、批量修改某一資料庫中,所有的表和表中的字段的編碼和排序規則

1、第一步生成修改語句

-- 第一步,先生成修改的SQL語句
USE testboot;
SELECT
    CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME,
' ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) 
FROM
    information_schema.`COLUMNS` 
WHERE
    COLLATION_NAME RLIKE 'utf8mb4_general_ci' 
    AND TABLE_SCHEMA = 'testboot';

-- 參數解釋
    -- testboot 你要修改的資料庫
    -- utf8mb4 改後的編碼
    -- 第一個 utf8mb4_general_ci 改後的排序規則
    -- 第二個 utf8mb4_general_ci 要改的表的現在的排序規則,這裡本來是utf8mb4_bin,我改過的,用utf8mb4_bin,會傳回空
    -- testboot 你要修改的資料庫      

類似這種

ALTER TABLE testboot.address MODIFY COLUMN address varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.address MODIFY COLUMN city varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.address MODIFY COLUMN province varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.blog MODIFY COLUMN content longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.blog MODIFY COLUMN description varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.blog MODIFY COLUMN summary varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.blog MODIFY COLUMN tags varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.blog MODIFY COLUMN title varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.navigation MODIFY COLUMN name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.navigation MODIFY COLUMN path varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.user MODIFY COLUMN email varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.user MODIFY COLUMN name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.user MODIFY COLUMN password varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE testboot.user MODIFY COLUMN tel varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;      

2、第二步,複制語句,執行就可以了(注意會初始化字段的注釋,字段長度)

修改完畢;可檢視。