sql - 将属性从一个表迁移到另一个表
问题描述
我有两张桌子:
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)是主键。
感谢您的回答和您的时间。
解决方案
您可以使用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;
推荐阅读
- python - 我想在 python 中循环我的文件创建者一定次数
- expression - 使用 mapbox 表达式获取要素 id
- node.js - 如何在 EJS 模板中转换 blob 对象
- java - 为什么我们要在android中使用RequestQueue?
- php - 如何将索引数组转换为关联数组
- matlab - 如何在 Tensorflow 中编写一个简单的循环(用于矩阵元素)?
- ruby-on-rails - Rails + GraphQL - 游戏的未知属性“角色”
- c# - 创建并以只读方式打开现有文件的临时副本并在使用后删除
- python - Python,从元组中剥离字符
- angular - Angular 测试激活路由:使用 RouterTestingModule 设置查询参数