最近在使用MySQL 8.0時,遇到了一個問題:無法創建表。
具體現象是,我在MySQL Workbench中輸入了創建表的SQL語句,但是執行時報錯,提示我“ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4' at line 5”。
我使用了一些常見的SQL語句,比如CREATE TABLE、INT、VARCHAR等等,但是總是無法成功創建表。
CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) UNIQUE NOT NULL, `password` VARCHAR(255) NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
我嘗試了多種方法,例如重新安裝MySQL、降級MySQL版本、修改SQL語句等等,但都沒有解決問題。
最終,我在MySQL官網上找到了答案。原來,MySQL 8.0中引入了新的數據類型和關鍵字,一些舊的語句已經不能被支持。
在創建表時,我們需要注意以下幾點:
- 不支持BLOB、TEXT、JSON等數據類型作為默認值
- 引擎類型需要被明確指定為InnoDB等,不支持默認值
- 一些關鍵字已經被添加或者修改,例如DEFAULT、DESC等
綜上所述,如果遇到MySQL 8.0無法創建表的問題,需要先檢查SQL語句是否符合新的標準。
上一篇個人主頁css下載