Объединение этих трех запросов в одной строке в Postgres - PullRequest
0 голосов
/ 29 июля 2011

У меня есть эти Postgres SQL, которые находятся между циклами while:

while (.......) {
...  
$runStatement = 'update products set abc = "'.data[0].'" where abc = "'.data[1].'";';
...
}

while (.......) {
...  
$runStatement = 'update products set xyz = "'.data[0].'" where xyz = "'.data[1].'";';
...
}

while (.......) {
...  
$runStatement = 'update extra_products set abc = "'.data[0].'" where abc = "'.data[1].'";';
...
}

где каждый цикл data фактически читается из одного и того же массива.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 июля 2011

Объедините операторы с точкой с запятой между ними и запустите их за один вызов в БД.

0 голосов
/ 29 июля 2011

Вам не нужны петли. Вы можете выполнить JOIN в своем обновлении, первая таблица относится, например, к продуктам, а вторая таблица представляет собой длинный список VALUES (старый, новый), (старый, новый) и т. Д. Это позволяет обновить много строк в одной команде. и намного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...