2014-11-20 48 views
0

所以我知道,在SQL Server中,如果某個過程期望得到一個varchar(5)並且它收到'123456',它將自動截斷爲'12345'。這是否也發生在MySQL?MySQL是否在存儲過程中截斷參數?

+0

當你嘗試過什麼? – 2014-11-20 22:16:33

+0

它應該因爲大小被指定爲5. – Rahul 2014-11-20 22:17:07

回答

2
+0

所以你的意思是,基於'sql_mode'設置截斷不會發生?這是一個奇怪的特徵。 – Rahul 2014-11-20 22:22:46

+0

@Rahul一些'sql_mode'設置是嚴格的,會拋出一個錯誤,而不是靜靜地截斷內容。如果您使用敏感數據,這可能很重要 - 因爲類型不匹配,您確實不希望將錯誤的銀行餘額插入某人的帳戶。 – ceejayoz 2014-11-20 22:34:54

+0

這就是我的意思,它應該始終限制。以你的銀行爲例...如果這是一個完整性約束,取款金額<= 5位數字,如果它允許6位數字,則由sql_mode執行,那麼我們在哪裏? – Rahul 2014-11-20 22:40:05