我正在寻找一种更有效的方法将数据从一个表传输到另一个表。假设我有两张桌子,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
由于
答案 0 :(得分:1)
首先,如果您有数百万行,那么每半小时将所有数据从一个表批量插入到另一个表中会使您的数据库变得非常困难。在插入发生期间,网站/应用程序将无法响应。
你真的需要复制吗? RDBMS的基本原则之一是避免冗余。将数据子集保存在另一个表中至少可以说是多余的。
解决方案:使用view作为您需要的数据子集。
然后你最好的选择是使用触发器。
CREATE TRIGGER make_dups
AFTER INSERT ON students
FOR EACH ROW EXECUTE PROCEDURE trigger_function();
您的trigger_function是一个存储函数,用于在另一个表中创建所需的行。
现在更新怎么样?是的,你也需要一个触发器。删除怎么样?是的相同