Команда REPLACE INTO
Команда REPLACE INTO используется для вставки записи
с заменой существующей строки при конфликте
первичного или уникального ключа. Если конфликт найден,
существующая строка удаляется и на её место
вставляется новая запись.
Синтаксис
REPLACE INTO table_name (column_list)
VALUES (value_list)
Таблицы для примеров
| id | name | login_count | |
|---|---|---|---|
| 1 | ivan@example.com | Ivan | 3 |
| 2 | olga@example.com | Olga | 1 |
Пример
Давайте при конфликте по уникальному полю `email` удалим существующую запись пользователя и заменим её новой:
REPLACE INTO users (id, email, name, login_count)
VALUES (3, 'ivan@example.com', 'Ivan New', 1)
Результат выполнения кода:
| id | name | login_count | |
|---|---|---|---|
| 3 | ivan@example.com | Ivan New | 1 |
| 2 | olga@example.com | Olga | 1 |
Пример
Давайте выполним вставку новой записи, так как конфликтов по ключам не возникает:
REPLACE INTO users (id, email, name, login_count)
VALUES (4, 'sergey@example.com', 'Sergey', 1)
Результат выполнения кода:
| id | name | login_count | |
|---|---|---|---|
| 3 | ivan@example.com | Ivan New | 1 |
| 2 | olga@example.com | Olga | 1 |
| 4 | sergey@example.com | Sergey | 1 |
Смотрите также
-
команду
INSERT,
которая вставляет новую строку -
команду
DELETE,
которая удаляет строку -
конструкцию
ON DUPLICATE KEY UPDATE,
которая обновляет вместо замены -
команду
UNIQUE,
которая определяет конфликт уникальности