最近在使用MySQL時發現,新建的表無法打開。在查詢表結構時,總是提示“表不存在”的錯誤。
最初我以為是表名輸入錯誤或者數據庫連接問題,但是在不斷排查后,發現問題出在了新建表的SQL語句上。
CREATE TABLE `my_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
看起來這條SQL語句并沒有問題,但是仔細觀察后發現,在CREATE TABLE后的反引號中包含了一個不可見字符,這就導致了新建表時出現了問題。
解決辦法很簡單,只需要刪除`my_table`中的可見字符,重新執行這條SQL語句,就能成功新建表并打開了。
CREATE TABLE `my_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
通過這個問題的發現,也提醒大家,在輸入SQL語句時,要格外注意輸入的各種字符是否正確,包括可見字符和不可見字符,防止出現無法預料的問題。