Изменить значение по умолчанию в SQL, если столбец существует - PullRequest
0 голосов
/ 20 мая 2019

У меня есть база данных, которая сейчас подвергается рефакторингу.
В этом рефакторинге я переместил столбец из одной таблицы в другую.
В следующем запросе я создаю новую строку в таблице с 5 атрибутами.
Мне нужно изменить этот запрос так, чтобы , если таблица static.connected_shelf содержит атрибут iot_device_type_fk, его значение будет равно 2, и если этот атрибут не находится вза столом ничего не случится.

        cursor.execute("""
        INSERT INTO static.connected_shelf(name, is_active, local_tz_offset, store_fk, template_fk)
        SELECT %(shelf_name)s, %(is_active)s, %(local_tz_offset)s, S.pk, T.pk
        FROM static.stores S, static.template T 
        WHERE S.name=%(store_name)s 
        AND T.name=%(template_name)s 
        """, {'shelf_name': shelf_name, 'is_active': is_active, 'store_name': store_name,
              'template_name': template_name,
              'iot_device_type_name': iot_device_type_name, 'local_tz_offset': local_tz_offset})
...