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

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

這裡寫圖片描述