2016-09-27 7 views
0

Я использую пакет node.js mysql, где я могу создать соединение и после connection.query (..) .., закройте соединение.node.js update mysql database

У меня есть набор строк, которые я хочу обновить в базе данных mysql, и я не знаю, существуют ли строки или нет. Здесь у меня есть два решения, но я не знаю, какой из них лучше:

  1. удалить все строки, которые я хочу, чтобы обновить в базе данных MySQL и вставить все строки, используя один connection.query (..) ..

    код Судо: 1. удалить из таблицы, где ID = .. [], 2. вкладыш в столовый набор ...

  2. чек каждая строка, что я хочу, чтобы обновить/вставить, если идентификатор существует в mysql, затем отправьте запрос на обновление, иначе вставьте.

    sudo code: 1. для каждой строки в списке 2. проверить, существует ли строка в mysql 3. если существует, то отправить запрос на обновление; , если не существует, а затем отправить запрос для вставки

для второго решения, я обеспокоен тем, что может быть слишком много времени. У кого-нибудь есть предложения? Каков наилучший способ сделать это? Я новичок в этих материалах, поэтому не знаю, лучше ли отправлять несколько запросов внутри цикла for, особенно в узле каждого connection.query - функция с обратным вызовом. Какой из них будет иметь лучшую общую производительность? Или какие-либо другие решения?

+0

это MySQL: делать и в то же время: 'вставить .. на дубликат ключа update'. задача решена. –

ответ

0

Использование insert ... on duplicate key update

Пример:

insert into `tableName` (col1, col2, col3) values ('v1', 'v2', 'v3') on dupicate key update `col3`='v3'

* Это не будет работать, если ключ в этом случае является auto_increment счетчик.

Источник: http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html