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')

# вставка значение из выборки
INSERT INTO table
        SELECT
                *
        FROM table2

REPLACE INTO

REPLACE INTO
        [<название БД>.]<название табюлицы>
        [(<поле1>, <поле2>, ...)]
        VALUES (<значение1>, <значение2>, ...)

REPLACE INTO table VALUES(3, 'text')