3

我想知道如何删除合作伙伴OpenERP并删除所有依赖项。例如, orders, sales,invoice等。

我试图打开合作伙伴视图并单击删除按钮。合作伙伴被删除,但相关订单没有被删除。它还会引发错误,因为该合作伙伴现在在数据库中不存在。如何删除合作伙伴并影响所有依赖项?

4

1 回答 1

0

我可以告诉你如何找到他的所有依赖项,但我会让你决定如何删除它们。我编写了这个 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';
于 2013-02-20T00:33:12.063 回答