以下INSERT IGNORE MySQL语法有什么问题?

时间:2013-06-22 16:36:09

标签: mysql sql

以下CREATE TABLE声明有效,并且工作正常:

  CREATE TABLE table1 (
                      'ID' int NOT NULL,
                      'PID' varchar(100) NOT NULL PRIMARY KEY,
                      'A' varchar(100) NOT NULL,
                      'B' varchar(100) NOT NULL,
                      'C' varchar(100),
                      'D' varchar(100),
                      'E' varchar(100)
                      );

但是,对于以下INSERT IGNORE语句,我收到无效的MySQL语法错误:

INSERT IGNORE INTO table1 ('ID', 'PID', 'A', 'B', 'C', 'D', 'E') 
VALUES (150, 'ABC123', 'ABC', 'ADE', 'ABC', 'ACE', '12345');

我也尝试过:

INSERT IGNORE INTO table1 (ID, PID, A, B, C, D, E) 
VALUES (150, 'ABC123', 'ABC', 'ADE', 'ABC', 'ACE', '12345');

2 个答案:

答案 0 :(得分:1)

您需要为列名使用反引号而不是单引号:

CREATE TABLE table1 (
`ID` int NOT NULL,
`PID` varchar(100) NOT NULL PRIMARY KEY,
`A` varchar(100) NOT NULL,
`B` varchar(100) NOT NULL,
`C` varchar(100),
`D` varchar(100),
`E` varchar(100)
);

INSERT IGNORE INTO table1 (`ID`, `PID`, `A`, `B`, `C`, `D`, `E`) 
VALUES (150, 'ABC123', 'ABC', 'ADE', 'ABC', 'ACE', '12345');                      

SQL Fiddle Demo

答案 1 :(得分:1)

试试这个。你的问题是你在create table中使用了单引号而不是你应该使用反引号:

   CREATE TABLE table1 (
                  `ID` int NOT NULL,
                  `PID` varchar(100) NOT NULL PRIMARY KEY,
                  `A` varchar(100) NOT NULL,
                  `B` varchar(100) NOT NULL,
                  `C` varchar(100),
                  `D` varchar(100),
                  `E` varchar(100)
                  );

  INSERT IGNORE INTO table1 (ID, PID, A, B, C, D, E) 
 VALUES (150, 'ABC123', 'ABC', 'ADE', 'ABC', 'ACE', '12345');

demo