BigQuery SQL,将SQL查询结果附加到现有表中

时间:2019-01-21 01:32:43

标签: sql database google-bigquery

我正在使用Google Cloud Platform BigQuery SQL。

我有一个表[myTable],正在编写以下SQL。我想将此SQL的结果附加到myTable上,但是到目前为止,我所能做的就是每次运行SQL时都替换myTable。

有人可以告诉我将查询结果追加到现有表的SQL语句是什么吗?

CREATE OR REPLACE myTable  -- myTable will be replace every time...
SELECT
  id,
  parameter1,
  parameter2
FROM 
  third_party_managerd_table

3 个答案:

答案 0 :(得分:1)

以下是用于BigQuery标准SQL

#standardSQL
INSERT `project.dataset.yourtable` (id, parameter1, parameter2) 
SELECT
  id,
  parameter1,
  parameter2
FROM 
  `project.dataset.third_party_managerd_table`   

在此处查看有关BigQuery DML的更多信息-https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax

答案 1 :(得分:0)

如果您正在使用bq命令行工具运行查询,则可以将其与--noreplace参数一起使用,以确保将数据追加到现有表中。方法如下:

bq --location=US query --noreplace --destination_table='project.dataset.yourtable' 'SELECT id, parameter1, parameter2 from `project.dataset.third_party_managerd_table`'  

希望这会有所帮助。

答案 2 :(得分:0)

也可以通过使用新查询创建一个新表并将其插入到“myTable”中来完成

CREATE OR REPLACE new_info
SELECT
  id,
  parameter1,
  parameter2
FROM 
  third_party_managerd_table;

INSERT INTO myTable
SELECT 
  n.*
FROM 
  new_info n;