MySQL ВСТАВИТЬ еще, если существует ОБНОВЛЕНИЕ

#php #mysql #insert

#php #mysql #вставить

Вопрос:

Я создаю таблицу конфигурации с двумя столбцами: config_name и config_value. Я вставляю несколько строк в один оператор:

 INSERT INTO ".$dbPrefix."config (config_name,config_value) VALUES
             ('domain','$domain'),
             ('forest_root','$fr_if'),
             ('userGroup','$userGroup'),
             ('adminGroup','$adminGroup');
  

Столбец config_name является первичным ключом. Как бы я изменил это утверждение, чтобы автоматически обновлять config_value, если config_name уже существует?

Комментарии:

1. Читать: dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Ответ №1:

Вы могли бы попробовать этот синтаксис:

 INSERT INTO table (field) VALUES (value) ON DUPLICATE KEY UPDATE field=value
  

Документы можно найти здесь.

Комментарии:

1. Это то, на что я смотрел, но я обновляю только 1 поле с несколькими значениями, которые ищутся и обновляются в нем (config_name)

2. На самом деле, после небольшой игры мне удалось заставить это работать.

Ответ №2:

Вы пытаетесь выполнить обновление, и я думаю, что это может помочь:http://database-programmer.blogspot.com/2009/06/approaches-to-upsert.html