以下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');
答案 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');
答案 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');