使用pgadmin将数据行从一个表复制到同一数据库中的另一个表

时间:2017-03-07 03:14:49

标签: sql postgresql

我对此很陌生,我需要一些帮助。

我想使用pgadmin将数据行从一个表复制到同一个数据库中的另一个表。但是,它们的列ID略有不同。有没有办法编写脚本来匹配它们并进行复制?

请帮忙。谢谢。

我尝试了以下方法(将STUD表中的现有数据复制到STUDENT表中):

CREATE TABLE STUDENT(
Student_id  INT,
Student_name TEXT,
Student_address TEXT
);

INSERT INTO STUDENT
SELECT * FROM STUD AS D
WHERE(
Student_id = D.id,
Student_name = D.name
);

我有2张桌子STUDENT和STUD。 在STUDENT表下,我有Student_id,Student_name和Student_address。 在STUD表下,我有名字和id。 两个表中的行都没有按顺序排列。

** ADD ON **
STUD 中的表格不带有Student_address列。只有STUDENT表有。由于STUD没有Student_address,我想将Student_address放在STUDENT表中为NULL。是否可以编写一个通用脚本,其中STUDENT表中不存在于Stud中的列将为NULL?

编辑** 我需要插入" TBC"

而不是NULL

1 个答案:

答案 0 :(得分:0)

使用基于选择的插入:

insert into student (Student_id, Student_name)
select id, name
from stud;

列名称不必匹配,只需匹配数据类型。您未在插入目标列表中指定的任何列将设置为null(或更具体地说,为该列定义的默认值)

在线示例:http://rextester.com/ISCL45721

修改(在要求发生变化后)

要为所有行在一列中插入常量值,请在select子句中包含该常量:

insert into student (Student_id, Student_name, student_address)
select id, name, 'TBC'
from stud;