«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вставка MySQL ... в дубликат обновления ключей обрабатывает операции UPSERT?

Как вставка MySQL ... в дубликат обновления ключей обрабатывает операции UPSERT?

Опубликовано в 2025-02-26
Просматривать:124

How Does MySQL's INSERT ... ON DUPLICATE KEY UPDATE Handle Upsert Operations?

эффективная операция поднятия для MySQL: Использование INSERT ... на дубликате в управлении базами данных MySQL часто необходимо выполнять такие операции, как вставка новых строк или обновление существующих строк в зависимости от того, существуют ли данные. Это называется операцией «Upsert» (вставьте или обновляйте).

]

MySQL предоставляет

вставка ... в дубликате обновления ключа

синтаксис для эффективного реализации функции upSert. Его принцип работы заключается в следующем: ]

вставьте в `table_name` (Column1`, `column2`, ...) ЦЕННОСТИ (значение1, значение2, ...) В дубликате обновления ключей `column1` = value1_updated, `column2` = value2_updated, ...
INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
указывает значение, которое должно быть вставлено в таблицу.

на дублировании обновления ключа пункт определяет действие, которое должно выполняться, когда в таблице есть строка с тем же первичным ключом (или уникальным индексом). ] Например, рассмотрим следующую таблицу: ]

создать таблицу `usage` ( `thing_id` int не нулевой первичный ключ, `times_used` int по умолчанию 0, `first_time_used` TimeStamp );

CREATE TABLE `usage` (
    `thing_id` INT NOT NULL PRIMARY KEY,
    `times_used` INT DEFAULT 0,
    `first_time_used` TIMESTAMP
);
из 4815162342, добавить 1 в столбец

times_used и установить first_time_used в текущую временную метку, Вы можете использовать следующий запрос Upsert: ] вставьте в `usage` (`thing_id`,` times_used`, `first_time_used`) ЦЕННОСТИ (4815162342, 1, теперь ()) В дубликате обновления ключей `times_used` =` times_used` 1

INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used`   1
из 4815162342 уже существует, запрос обновит столбец

times_used , while first_time_used ] остается без изменений. В противном случае будет вставлена ​​новая линия. ] вставьте ... в дубликате обновления ключей

является гибкой и эффективной технологией для выполнения операций Upsert в MySQL. Это позволяет вам выполнять операции вставки и обновления с помощью одного запроса, упрощения кода и повышения производительности.

]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3