Документация на MySQL

Несоответствия типов в INSERT


В настоящее время инструкция INSERT дает ошибку только при вставке пустого указателя (NULL) в не пустой столбец.

При использовании INSERT или команды, которая может воздействовать на много записей, выполняется следующее:

  • Значения преобразуются в правый тип (от integer/real/string до integer/real/string) перед сохранением.
  • Слишком длинные строки усекаются, и увеличивается значение переменной 'warnings'.
  • Если значение ниже минимального значения для столбца, минимальное значение вставляется, и увеличивается значение переменной 'warnings'.
  • Если значение выше максимального значения для столбца, максимальное значение вставляется, и увеличивается значение переменной 'warnings'.
  • При преобразовании строки в целое число, значение усекается при первой не-цифре. Если в строке есть какой-либо символ, не являющийся цифрой, то увеличивается значение переменной 'warnings'.
  • При преобразовании строки в число с плавающей точкой увеличивается значение переменной 'warnings', если после целого числа есть какие-либо символы, кроме точки.

Во время связи клиента с сервером 'warnings information' возвращается только при использовании 'ALTER TABLE' или 'LOAD DATA FROM...'.



Содержание раздела