Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция INSERT советы и хитрости программирования

Инструкции INSERT никогда не будут выполняться в следующих ситуациях.

  • Если типы данных столбца и значения не соответствуют друг другу.
  • Если в столбце определено ограничение NOT NULL, а вставляется пустое значение.
  • Если вставляется дублирующее значение в столбец с ограничениями PRIMARY KEY или UNIQUE.
  • Если вставляемые значения не удовлетворяют требованиям проверочных (CHECK) ограничений.
  • Если вставляемое значение не соответствует ограничению FOREIGN KEY, поскольку не взято из объявленного первичного ключа другой таблицы.

Наиболее распространенная ошибка при выполнении инструкций INSERT — это несовпадение числа столбцов и числа значений. Случайный пропуск значения, соответствующего столбцу — и возникает ошибка, которая препятствует выполнению инструкции.

Инструкция INSERT также не будет выполнена, если тип данных вставляемого значения не совпадает с типом данных столбца целевой таблицы. Например, нельзя вставить строку «Hello world» в столбец целочисленного типа. С другой стороны, некоторые платформы автоматически и неявно выполняют преобразование некоторых типов. Например, SQL Server автоматически преобразует дату в строковое значение, пригодное для вставки в столбец VARCHAR.

Еще одна проблема, которая часто встречается при использовании инструкции INSERT, — это несовпадение размера значения и соответствующего столбца. Например, вставка длинной строки в столбец CHAR(5) или вставка очень большого целого числа в столбец TINYINT вызовет проблему. В зависимости от используемой платформы несовпадение размеров может вызвать прямую ошибку и откат транзакции или же сервер базы данных может просто обрезать данные до нужной длины.

Запуск инструкции INSERT без списка столбцов является очень плохой практикой, поскольку инструкция перестанет выполняться, если целевая таблица когда-либо подвергнется изменениям.

Любой из этих результатов является нежелательным. Проблема также может возникнуть при попытке вставить значение NULL в столбец, который не принимает пустых значений.

Большинство проблем в инструкциях INSERT возникает, потому что программист не очень хорошо знает целевую таблицу. Перед тем, как создавать инструщии INSERT, вы должны обязательно попять таблицу или представление.

Источник