【问题标题】:How do I copy data between tables PostgreSQLPostgreSQL 如何在表之间复制数据
【发布时间】:2012-05-08 06:46:38
【问题描述】:

我有两个表:account_company 和 document_invoice。 表 account_company 有 2 列:company_id 和 company_name。 表 document_invoice 具有相同的列:company_id 和 company_name。 发生了一些事情,从 document_invoice 中删除列公司名称的所有数据。

如何编写 SQL 查询将数据从客户公司表复制到 document_invoice? 我一直在使用 UPDATE 和 SET,但我不知道具体如何。

UPDATE document_invoice
   SET company_name = (SELECT company_name FROM account_company)
 WHERE document_id.company_name=document_id.account

【问题讨论】:

  • 稍微OT,考虑不携带单据发票表中的公司名称,除非您认为公司名称可能会更改并且您想从发票的时间。 (即便如此,您可能会考虑对问题进行临时管理,但这可能太过分了。)数据的冗余存储使得更新成本更高,并带来了它们可能不同步的风险。这就是连接的用途。不要相信 FUD 会很昂贵。
  • 我同意 kgrittn:如​​果您在 document_invoice 中已有 company_id,则无需在该表中保留 company_name 的副本。

标签: sql postgresql set sql-update


【解决方案1】:

这应该可行:

UPDATE document_invoice t1 
SET company_name = t2.company_name
FROM account_company t2 
WHERE t1.company_id = t2.company_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-11
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多