У меня есть список ID [1,5,8, ...]. У меня также есть таблица (TableA), которая имеет 100 строк (что точно соответствует моему списку идентификаторов). У меня есть другая таблица (TableB), у которой есть тонны строк (2000), и я хочу обновить один столбец (True/False) на основе того, существует ли первичный ключ в первичных ключах TableA (или мой список идентификаторов python - то же самое).PostGres Значения обновления SQL на основе списка идентификаторов или первичных ключей в другой таблице
В настоящее время я Переберите мой список идентификаторов и просто сделать просто обновить заявление (ниже код питона):
for id in ID_List:
cur.execute('update TableB set "Column1"=%s where "ID"=%s', (False,id))
Это прекрасно работает - но мне интересно, если есть один код строки я мог а не цикл. Что-то вроде:
cur.execute('update TableB set "Column1"=False where "ID" in ID_List')
or
cur.execute('update TableB set "Column1"=False where "ID" in TableA.keys()'
и все строки в ID_List будут быстро обновляться. Я не могу использовать «>» или «<», потому что идентификаторы могут не быть больше или меньше определенного числа. Я могу изменить ID (3,6,9), но не (4,7,8).
это, кажется, работает хорошо - спасибо! – mcfly