【问题标题】:How to insert and update in 3 different databases?如何在 3 个不同的数据库中插入和更新?
【发布时间】:2017-04-15 16:10:45
【问题描述】:

我有 3 个不同的数据库,database1, database2, and database3

我在每个数据库中都有一个表Account。在我的database1database2Account 中,我有3 列ID, Username, and Password,在我的数据库3 表帐户中我有4 列ID, Username, Password, and db_name

我想要做的是在database3.Account 中插入所有database1.Accountdatabase2.Account 数据,在我的第4 列中,我需要确定它来自哪里的数据库。

顺便说一句,我已经做到了,但我对我的解决方案不满意,因为我为此花费了 3 个查询。如果可能的话,我想尽可能地用 1 个查询来完成。

P.S: 对不起我的英语不好

【问题讨论】:

  • 你试过任何sql或编码吗?
  • 那么你面临什么问题......你有没有尝试过你身边的任何东西
  • 你应该尝试搜索一些东西,而不是直接获得解决方案
  • 你能告诉我们db_name的类型吗?
  • 我的 db_name 只是一个 Varchar

标签: c# mysql sql database sql-server-2008


【解决方案1】:

使用联合你可以做到这一点。

INSERT INTO database3.dbo.Account (ID, Username, Password,db_name)
SELECT ID, Username, Password,'database1' FROM database1.dbo.Account
UNION
SELECT ID, Username, Password,'database2' FROM database2.dbo.Account

【讨论】:

  • 我已经使用 UNION 做到了,但我真正的问题是识别它来自的数据库的名称。如果是来自 Database1 或 Database2。
  • database3.dbo.Account 的最后一列 db_name 会有那个。
  • 是的!对不起。我没有注意到:) 似乎我找到了正确的答案。非常感谢。
【解决方案2】:

INSERT INTO database3.account(ID,Username,Password, db_name)
SELECT ID, Username, Password, "1" FROM database1.account

那就做吧

INSERT INTO database3.account(ID,Username,Password, db_name)
SELECT ID, Username, Password, "2" FROM database1.account

【讨论】:

    【解决方案3】:
    INSERT INTO database3.dbo.Account (ID, Username, Password,db_name)
       SELECT ID, Username, Password,'database1'
         FROM database1.dbo.Account 
         WHERE (some condition)
    
    
    INSERT INTO database3.dbo.Account (ID, Username, Password,db_name)
       SELECT ID, Username, Password,'database2'
         FROM database2.dbo.Account 
         WHERE (some condition)
    

    【讨论】:

    • 这只是一个选项,如果有任何过滤条件
    • 没有过滤
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2021-03-27
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多