INSERT¶
Оператор добавления записи в таблицу
INSERT
[OR <алгоритм>]
INTO [<название БД>.]<таблица>
[(поле1, поле2, ...)]
VALUES (<значение1>, <значение2>, ....)
[OR <алгоритм>] - задает способ разрешения конфликтных ситуации. Алгоритмы:
ABORT - при ошибке, аннулируются все изменения и выводится сообщение об ошибке
FAIL - при ошибке, изменения сохраняются, выполнение команды прерывается и выводится сообщение об ошибке
IGNORE - ошибка игнорируется
REPLACE, также можно использовать конструкцию REPLACE INTO описанную ниже
при нарушении условия UNIQUE существующая запись удаляется, а новая вставляется. сообщение об ошибке не выводится
при нарушении условия NOT NULL, значение NULL заменяется значением по умолчанию, а если он не задан то выполняется алгоритм ABORT
если нарушено условие CHECK, применяется алгоритм IGNORE
ROLLBACK - при ошибке, транзакция завершается с откатом всех изменений, дальнейшее выполнение прерывается и выводится сообщение об ошибке. Если активной транзакций нет, то используется алгоритм ABORT
INSERT INTO
table
VALUES
(1, 'hi', 'hello');
-- вствка значений в определенные столбцы
INSERT INTO
table(id, name)
VALUES
(1, 'hi'), (2, 'hi hi');
-- вставка значение из выборки
INSERT INTO
table
SELECT
*
FROM
table2;
REPLACE INTO¶
REPLACE INTO
[<название БД>.]<название табюлицы>
[(<поле1>, <поле2>, ...)]
VALUES (<значение1>, <значение2>, ...)
REPLACE INTO table VALUES(3, 'text')