Рекурсивное удаление PostgreSQL с ограничением внешнего ключаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Рекурсивное удаление PostgreSQL с ограничением внешнего ключа

Сообщение Anonymous »

В моей таблице PostgreSQL при попытке удалить запись возникает следующая ошибка:
SQL Error [23503]: ERROR: update or delete on table "parent_table" violates foreign key constraint "parent_table_header_ref_id_id_4fd15d08_fk" on table "child_table"
Detail: Key (id)=(1) is still referenced from table "child_table".

Это происходит даже при включенном параметре ON DELETE RESTRICT. Существует ли какой-либо сценарий или функция/цикл PostgreSQL, который можно использовать для рекурсивного удаления данных, гарантируя, что все связанные записи на нескольких уровнях будут безопасно удалены при наличии ограничений внешнего ключа?
Python Псевдокод:
def delete_record(query):
while True:
try:
cursor.execute(query)
break
except Exception as exception:
# exception = 'SQL Error [23503]: ERROR: update or delete on table "parent_table" violates foreign key constraint "parent_table_header_ref_id_id_4fd15d08_fk" on table "child_table"'
child_table_delete_query = get_delete_query(exception)
# child_table_delete_query = 'delete from child_table where header_ref_id_id = 1'
delete_record(child_table_delete_query)

delete_record('delete from parent_table where id = 1')


Подробнее здесь: https://stackoverflow.com/questions/786 ... constraint
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»