| 值 | 行為 |
|---|---|
| 0 | 儲存保留大小寫,比較**敏感**(Linux 預設) |
| 1 | 儲存轉小寫,比較**不敏感**(Windows 預設) |
| 2 | 儲存保留大小寫,比較轉小寫 |
my.ini(Windows)或 my.cnf(Linux)。[mysqld] 區段新增:lower_case_table_names=0net stop mysql && net start mysqlsystemctl restart mysqld若原庫有大寫表名,直接改參數重啟會導致**找不到表**。必須先轉小寫:
-- 產生重命名腳本
SELECT CONCAT('RENAME TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', LOWER(TABLE_NAME), '`;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='your_db' AND TABLE_NAME != LOWER(TABLE_NAME);
-- 執行輸出的 RENAME 陳述式
-- 然後修改參數重啟
SHOW VARIABLES LIKE 'lower_case_table_names';
CREATE TABLE TestCase (id INT);
SHOW TABLES; -- 應顯示 testcase
SELECT * FROM TestCase; -- 0 時報錯,1 時正常