1. 程式人生 > >完美解決 ERROR 1064 (42000): You have an error in your SQL syntax ... near …

完美解決 ERROR 1064 (42000): You have an error in your SQL syntax ... near …

在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的關鍵字。

在英文鍵盤輸入環境下,按圖示按鈕輸入反引號 `

這裡寫圖片描述