【问题标题】:insert data from another table where ids match从另一个 id 匹配的表中插入数据
【发布时间】:2021-10-31 10:08:09
【问题描述】:

我想将一些数据从一个表插入到另一个表中。

例如,我有一个表a.userb.user(2 个不同模式的表)

两个表都有 id 列,其中一些 id 匹配。对于匹配的ID,我想将a.user.userSettings中的一些数据插入b.user.userSettings

我可以做一个简单的选择 + 内连接来获得 userSettings 两个表中的 id 匹配。

现在,我尝试将其插入b.users,但它不起作用。

这是我的查询:

insert into b.user ("userSettings") select "userSettings" from a.user
inner join b.user
on a.user.id = b.users.id

我收到以下错误:

SQL Error [23502]: ERROR: null value in column "username" violates not-null constraint

我不明白这个错误,以及为什么当我没有尝试在该列中插入任何内容时它抱怨该列 username

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    听起来您想更新 b 中的行,而不是插入它们:

    update b.user b
        set userSettings = a.userSettings
        from a.user a
        where a.id = b.id;
    

    【讨论】:

    • 啊,我认为插入只会复制行。更新完美,谢谢!
    猜你喜欢
    • 2015-10-27
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2017-03-15
    • 1970-01-01
    相关资源
    最近更新 更多