2013-08-18 75 views
0

大家好(請注意,我有不同的問題類似的主題),MySQL中VALUES子句中的數據類型可以是不同的類型,那麼列數據類型?

我正在學習MySQL。我遇到了一些選擇題。 如果我懷疑答案是什麼或者不確定是否正確,我開始搜索谷歌,stackoverflow和mysql站點。 但是對於一些人來說,我仍然無法確定正確答案是什麼。

問題: 是真是假? 「 」INSERT語句的VALUES子句中指定的值的數量和數據類型必須與INTO子句中指定的相應數量和數據類型匹配「。

我認爲這是一個有趣的問題,就好像列指定了VARCHAR我可以使用int來插入它。 從我認爲如果可能的話MySQL會投射您指定的內容。所以這是錯誤的。 舉例:

CREATE TABLE a (name VARCHAR(1)); 
INSERT INTO a (1); 
INSERT INTO a (1.1); 

圍繞它的另一種方式也適用。創建一個INT列。甚至插入一個字符串文字,MySQL仍然允許它。

如果您對此問題/回答或我的任何言論有任何評論,我很樂意聽到!

非常感謝!

回答

0

正確的答案實際上取決於SQL模式,正如在STRICT mode中,如果數據類型錯誤,您將收到錯誤,在其他模式下,MySQL將盡其所能(例如將在小數點後截斷每個數據項如果您試圖在int列中插入float)來執行查詢,並只會產生關於它所執行的隱式轉換的警告。

+0

這的確是對的。謝謝你指出! – th3penguinwhisperer

相關問題