0

我有一张桌子

CREATE TABLE IF NOT EXISTS `employee` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) DEFAULT NULL,
`SALARY` int(11) DEFAULT NULL,
`DEPT` varchar(10) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

如果我为上表插入值,如下所示,它会抛出错误

INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');
4

2 回答 2

6

删除列名上的单引号。

INSERT INTO employee (NAME, SALARY, DEPT) VALUES ('user test', 10000, 'ADMIN');

单引号用于字符串文字,列名是标识符。服务器抛出异常,因为列需要标识符而不是字符串文字。用单引号包裹标识符会将其转换为字符串。

如果碰巧您拥有的列名和表名是 mysql 保留关键字列表中的关键字之一,则可以使用反引号来分隔。

于 2013-03-25T09:45:13.723 回答
2

改变这个

INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');

INSERT INTO employee (`NAME`, `SALARY`, `DEPT`) VALUES ('user test', 10000, 'ADMIN');
于 2013-03-25T09:46:10.197 回答