2013-03-25 95 views
0

我有一個表Mysql的拋出錯誤,同時插入

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'); 
+2

如果你得到一個錯誤信息,請與您的問題一併發佈。錯誤消息有一個目的:幫助診斷問題。不要讓我們猜測! – 2013-03-25 09:46:54

+0

耶,猜猜遊戲! – sjngm 2013-04-23 20:19:27

回答

6

去除塔中的單引號名。

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

單引號用於字符串文字,列名稱是標識符。服務器拋出異常,因爲列需要一個標識符而不是字符串文字。用單引號包裝標識符將其轉換爲字符串。

如果發生列名稱以及表名稱是mysql保留關鍵字列表中的關鍵字之一,可以使用反引號對其進行分隔。

+0

謝謝你,完全忘了mysql;) – krrr25 2013-03-25 09:46:34

+0

不客氣':D' – 2013-03-25 09:47:11

2

改變這種

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

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