2014-11-20 3 views
0

Так что я знаю, что в SQL Server, если какая-то процедура ожидает varchar (5) и получает «123456», это автоматически усекает до «12345». Это тоже происходит в MySQL?Устанавливает ли MySQL параметры в хранимых процедурах?

+0

Что произошло, когда вы попробовали? –

+0

Должно быть, поскольку размер указан как 5. – Rahul

ответ

2

Это зависит от вашего sql_mode настроек.

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_sql_mode

+0

Итак, вы имеете в виду, что на основе 'sql_mode' настройка усечения не произойдет? Это странная особенность. – Rahul

+0

@Rahul Некоторые настройки 'sql_mode' являются строгими и будут вызывать ошибку, а не просто обрезать содержимое. Если вы работаете с конфиденциальными данными, это может быть важно - вы действительно не хотите вставлять неправильный баланс банка в чей-то аккаунт из-за несоответствия типа. – ceejayoz

+0

Вот что я имею в виду, он должен всегда ограничивать. взяв пример вашего банка ... Если это ограничение целостности, количество вывода <= 5 цифр и по sql_mode, если оно позволяет 6 цифр, то где мы? – Rahul

Смежные вопросы