我想知道如何删除合作伙伴OpenERP
并删除所有依赖项。例如, orders
, sales
,invoice
等。
我试图打开合作伙伴视图并单击删除按钮。合作伙伴被删除,但相关订单没有被删除。它还会引发错误,因为该合作伙伴现在在数据库中不存在。如何删除合作伙伴并影响所有依赖项?
我可以告诉你如何找到他的所有依赖项,但我会让你决定如何删除它们。我编写了这个 SQL 脚本来查找任何表中任何记录集的依赖关系。您将表名放在最后一行,然后替换(1234)
为您要查找其子项的记录 ID 集。
当您运行查询时,它将生成一个大 SQL 语句,然后您可以运行该语句以查看所有子记录。您只需要UNION ALL
在运行它之前删除最后一个。这仅向您显示直接子记录,而不是间接相关的记录。它也不会告诉您像工作流表ir_values
、 或ir_model_data
.
SELECT 'SELECT ''' || tc.table_name ||
''' as tabname, ''' || kcu.column_name ||
''' as colname, ' || kcu.column_name ||
' as id, count(*) FROM ' || tc.table_name ||
' as cnt WHERE ' || kcu.column_name || ' IN (1234) ' ||
' GROUP BY ' || kcu.column_name || ' UNION ALL '
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
WHERE constraint_type = 'FOREIGN KEY'
AND ccu.table_name = 'res_partner';