我有以下命令的表:
CREATE TABLE treatment_costs AS SELECT * FROM
(SELECT r.patient_id, r.transaction_date, r.paid_transaction_amount, o.dob, o. department_name, o.reason_of_visit FROM ReceiptTransactions r
LEFT OUTER JOIN OpdPatientQ o ON (r.patient_id = o.patient_id)
);
我现在想将今天(在给定日期)插入的所有记录插入上表。为此,我写了:
INSERT INTO TABLE treatment_costs SELECT * FROM
(SELECT r.patient_id, r.transaction_date, r.paid_transaction_amount, o.dob, o. department_name, o.reason_of_visit FROM ReceiptTransactions r WHERE timestamp_column = today_date
LEFT OUTER JOIN OpdPatientQ o ON (r.patient_id = o.patient_id)
);
这是在表中插入多个查询的正确方法吗?
INSERT INTO将追加到表或分区,并保持现有数据完整。
INSERT INTO TABLE ...
将不会覆盖表中已经存在的任何数据。您具有的INSERT
查询将运行MapReduce(基于引擎类型)作业,该作业会将新生成的文件写入表位置,而不删除现有文件。