轉! 完美解決 ERROR 1064 (42000): You have an error in your SQL syntax ... near …
阿新 • • 發佈:2018-12-11
在MySQL命令列使用sql語句進行建表時,MySQL 報錯,這個問題之前遇到過幾次,但是總是會因為疏忽又相遇,今天把這個問題寫出來,加深印象吧。
sql語句:
CREATE TABLE 'lrs_audit_rule_package'( 'id' BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '主鍵', 'package_code' varchar(6) NOT NULL COMMENT '規則包', 'package_type' varchar(2) NOT NULL COMMENT '規則包型別', 'package_desc' varchar(100) COMMENT '描述', 'create_time' datetime DEFAULT NULL COMMENT '創始時間', 'modified_time' datetime DEFAULT NULL COMMENT '修改時間' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='稽核規則包';
看上去這條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 ''lrs_audit_rule_package'(
'id' BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT ' at line 1
在上述的sql語句中,列名稱使用的是單引號而不是反引號,所以會就報了這個錯誤出來。修改後
CREATE TABLE `lrs_audit_rule_package`( `id` BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '主鍵', `package_code` varchar(6) NOT NULL COMMENT '規則包', `package_type` varchar(2) NOT NULL COMMENT '規則包型別', `package_desc` varchar(100) COMMENT '描述', `create_time` datetime DEFAULT NULL COMMENT '創始時間', `modified_time` datetime DEFAULT NULL COMMENT '修改時間' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='稽核規則包';
再次執行就不會報錯了,但是有一點需要注意,後面列的註釋不能用反引號,因為這只是一個普通字串,不是MySQL的關鍵字。
在英文鍵盤輸入環境下,按圖示按鈕輸入反引號 `