[英]update content of column from another schema.table.column postgresql
我在同一数据库(PostgreSQL)中有2个架构。
schema1
schema2
每个模式都有表users
和mail column
。
我如何将内容从schema1.users中的mail列复制到所有行的message列到schema2.users
我试过了:
update schema1.users
set mail=(select mail from schema2.users);
但是没有用
提前致谢
您可以加入两个表。 我加入了用户,但我不知道布局如何。
update schema2.users
set mail=s1.mail
from schema1.mail as s1
where users.user = s1.user
您可以对表进行UPDATE,假设两个表都具有匹配的ID,则它看起来像这样:
UPDATE schema1.users a
SET mail=b.mail
FROM schema2.users b
WHERE a.id=b.id
我正在做的是加入表并为每个匹配的ID更新schema1.users上的邮件。
编辑:我刚刚读到您实际上想要更新schema2.users邮件。 查询将是以下内容:
UPDATE schema2.users a
SET mail=b.mail
FROM schema1.users b
WHERE a.id=b.id
这不是一个优雅的解决方案,但这是我从脚本的命令行中执行的操作,将特定表从一个模式复制到另一个模式中的特定表
set search_path to schema1;
\copy (select field1, nextfield, morefields from table_in_schema1 ) TO export.sql delimiter ',' ;
set search_path to schema2;
\copy table_name_in_schema2(matchingfield1, field_that_matches_next, another_field_forPosition2, ) FROM 'export.sql' DELIMITER ',' ;
我有几个表需要导出到新架构中的单个表中,因此我已对此脚本编写了脚本,因此我有一个循环,该循环读取包含表名的文件,以导入到架构2中,然后使用来将它们发送到数据库中。下面的命令-将向第二个模式中的表加载大约30个表。
psql -d alltg -c "\i bulk_import.sql"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.