将属性从表迁移到另一个表

问题描述 投票:0回答:1

我有两张桌子:

TEST1 : 
attribut1, attribut2, attribut3 

TEST2 : 
attribut4

attribut4模式就像“xxxxx yyyyy zzzzz”

我的问题是,是否可以将TEST1 attribut1中的所有“xxxxx”,attribut2中的所有“yyyyy”和表TEST2的attribut3“zzzzz”中?

我尝试过类似的东西:

insert into TEST1(attribut1) SELECT SUBSTRING(attribut4,1,5)::integer FROM TEST2;

但它说:

错误:“attribut2”列中的空值违反非空约束DETAIL:失败行包含(xxxxx,null,null)。

(attribut1,attribut2)是主要关键。

感谢您的回答和时间。

sql postgresql migrate
1个回答
0
投票

你可以使用split_part()

insert into TEST1 (attribut1, attribut2, attribut3)
    SELECT split_part(attribut4, ' ', 1)::int,
           split_part(attribut4, ' ', 2)::int,
           split_part(attribut4, ' ', 3)::int
    FROM TEST2;
© www.soinside.com 2019 - 2024. All rights reserved.