完美解決 ERROR 1064 (42000): You have an error in your SQL syntax ... near …
阿新 • • 發佈:2019-01-30
在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的關鍵字。
在英文鍵盤輸入環境下,按圖示按鈕輸入反引號 `