【问题标题】:OpernERP remove partner with dependent ordersOpernERP 删除具有依赖订单的合作伙伴
【发布时间】:2013-01-10 21:03:48
【问题描述】:

我想知道如何从OpenERP 中删除合作伙伴并删除所有依赖项。比如orderssalesinvoice

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

【问题讨论】:

    标签: openerp psql orders


    【解决方案1】:

    我可以告诉你如何找到他的所有依赖项,但我会让你决定如何删除它们。我编写了这个 SQL 脚本来查找任何表中任何记录集的依赖关系。您将表名放在最后一行,然后将 (1234) 替换为您要查找其子项的记录 id 集。

    当您运行查询时,它将生成一个大的 SQL 语句,然后您可以运行该语句来查看所有子记录。您只需在运行之前删除最后一个UNION ALL。这仅向您显示直接子记录,而不是间接相关的记录。它也不会告诉你工作流表中那些古怪的关系,ir_valuesir_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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2017-07-27
      相关资源
      最近更新 更多