Инструкция INSERT советы и хитрости MySQL
Платформа MySQL поддерживает несколько опций инструкции INSERT, которые позволили этой платформе заслужить репутацию высокоскоростной.
INSERT [LOW_PRI0RITY | DELAYED] [IGNORE]
[INTO] [[имя_базы_данных.’владелец.] имя_таблицы [(столбец1 [, …])]
{VALUES (значение [, …]) | инструкция SELEСТ SET столбец1=значение1, столбец2=значение2 [, …]}
Где:
LOW_PRIORITY
Задерживает выполнение инструкции INSERT до тех пор, пока никакие другие клиенты не будут читать таблицу. Ожидание может быть довольно длительным. Предложение LOW PRIORITY не следует использовать в таблицах MylSAM, поскольку становится невозможной параллельная вставка.
DELAYED
Позволяет клиенту сразу продолжать работу, даже если вставка еще не завершена.
IGNORE
MySQL не будет пытаться вставлять записи, которые могут дублировать значения в первичном или уникальном ключе. В противном случае (без этого предложения) вставка завершится ошибкой, если произойдет такое дублирование. Если дублирование происходит при указанном предложении IGNORE, дублирующиеся записи игнорируются, а остальные записи вставляются.
SET столбец=значение
Альтернативная синтаксическая конструкция, которая позволяет указывать значения целевых столбцов по именам.
Платформа MySQL не поддерживает предложения DEFAULT VALUES и OVERRIDE стандарта ANSI.
Платформа MySQL обрезает часть значения при несовпадении размеров или типов данных. Так, если вы вставляете значение «10.23 X» в столбец с десятичными дробями, то из вставляемого значения будет вырезан фрагмент «…X». Если вы попытаетесь вставить в столбец числовое значение, выходящее за пределы допустимого диапазона для этого столбца, то MySQL обрежет это значение. Вставка некорректного значения даты-времени приведет к тому, что в столбец будет вставлено нулевое значение. Вставка строки «Hello World» в столбец СНЛЩ5) приведет к тому, что значение будет обрезано до пяти символов («Hello»). Обрезание строки применяется в столбцах типов CHAR, VARCHAR, TEXT’и BLOB.