将数据从一个表复制到同一数据库中的另一个表的有效方法

时间:2017-03-08 03:48:55

标签: sql postgresql

我正在寻找一种更有效的方法将数据从一个表传输到另一个表。假设我有两张桌子,STUDENT和STUD,我必须考虑到每天会有数百万笔交易。

我正在使用PGAdmin。这是我目前将数据从STUD传输到STUDENT表的脚本示例:

CREATE TABLE STUDENT(
STUDENT_NAME TEXT,
STUDENT_CLASS TEXT,
STUDENT_NO INTEGER,
STUDENT_ADDRESS TEXT,
.
.
.
);  

INSERT INTO STUDENT(
STUDENT_NAME,
STUDENT_CLASS,
STUDENT_NO,
STUDENT_ADDRESS
)
SELECT
STUD_NAME,
STUD_CLASS,
STUD_NUM,
STUD_ADDS  

FROM STUD

由于

1 个答案:

答案 0 :(得分:1)

为什么要插入?

首先,如果您有数百万行,那么每半小时将所有数据从一个表批量插入到另一个表中会使您的数据库变得非常困难。在插入发生期间,网站/应用程序将无法响应。

你真的需要复制吗? RDBMS的基本原则之一是避免冗余。将数据子集保存在另一个表中至少可以说是多余的。

解决方案:使用view作为您需要的数据子集。

不,我真的必须插入

然后你最好的选择是使用触发器。

CREATE TRIGGER make_dups
    AFTER INSERT ON students
     FOR EACH ROW EXECUTE PROCEDURE trigger_function();

您的trigger_function是一个存储函数,用于在另一个表中创建所需的行。

现在更新怎么样?是的,你也需要一个触发器。删除怎么样?是的相同