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