首页 > 解决方案 > 将属性从一个表迁移到另一个表

问题描述

我有两张桌子:

TEST1 : 
attribut1, attribut2, attribut3 

TEST2 : 
attribut4

attribut4 模式就像“xxxxx yyyyy zzzzz”

我的问题是,是否可以将 TEST1 属性 1 中的所有“xxxxx”、属性 2 中的所有“yyyyy”以及表 TEST2 的属性 3“zzzzz”中?

我尝试了类似的东西:

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

但它说:

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

(属性 1,属性 2)是主键。

感谢您的回答和您的时间。

标签: sqlpostgresqlmigrate

解决方案


您可以使用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;

推荐阅读