有誰知道是什麼問題,這個查詢:MySQL的INSERT問題
INSERT INTO match
(IDTeamHome, IDTeamGuest, Date)
VALUES
('15','16','20.03.2011 15:00')
IDTeamHome和IDTeamGuest是整數,日期爲varchar。
有誰知道是什麼問題,這個查詢:MySQL的INSERT問題
INSERT INTO match
(IDTeamHome, IDTeamGuest, Date)
VALUES
('15','16','20.03.2011 15:00')
IDTeamHome和IDTeamGuest是整數,日期爲varchar。
編輯:有幾個問題。
「匹配」和「日期」are keywords in MySQL。你需要在它們周圍加雙引號或反引號,以便MySQL知道它們是表或列名,例如
INSERT INTO "match" (id1, id2, "date") VALUES ...
刪除您插入的整數值周圍的單引號。
單引號是用於字符串。 (並非OMG Ponies在評論中指出的那樣嚴格必要)
如果您可以避免它,請不要將時間戳存儲爲VARCHAR。這將會使查詢變得更加困難,並且讓任何正在使用桌面的人都感到困惑。
MySQL(以及大多數其他數據庫)基於列數據類型在這些情況下執行隱式轉換。但爲了試圖提供無法隱式轉換的數據,不依賴它是個好習慣。 – 2011-03-20 21:12:56
爲什麼單引號在他的情況下不起作用?是關係到一些sql模式? – 2011-03-20 21:14:56
啊,我明白了。感謝Adam。 – 2011-03-20 21:20:35
匹配是一個保留字。
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
重命名錶或把它內反引號(ALT + 96)
我已經看到了剛纔。 :)
非常感謝你,你解決了我的問題! – dzosef 2011-03-20 21:36:34
團隊的ID是Int,因此您不能使用單引號,因爲這是引用。對於字符串值,請使用以下格式:
insert into match(int,varchar(20),data)
Values(12,'teamname','2015-11-4');
什麼是您的錯誤? – strauberry 2011-03-20 21:06:37
爲什麼要在VARCHAR列中存儲日期和時間!?您發佈的內容沒有明顯的錯誤,您必須提供您遇到的錯誤才能獲得答案。 – 2011-03-20 21:21:31