如何在Google BigQuery中创建或替换表之后立即执行INSERT INTO语句

时间:2018-08-13 07:22:23

标签: google-bigquery

我正在尝试在创建新表后立即向其中填充一些数据,就像在像MySQL或PostgreSQL这样的常规DBMS中一样。

但是,即使我有分号来分隔语句,它也会在CREATE OR REPLACE语句之后抱怨INSERT令牌。

这是我要执行的:

#standardSQL
CREATE OR REPLACE TABLE `foo.bar.months` (text STRING, number INT64);
INSERT INTO `foo.bar.months` (text, number) VALUES ('Jan', 1), ('Feb', 2), ('Mar', 3), ('Apr', 4), ('May', 5), ('Jun', 6), ('Jul', 7), ('Aug', 8), ('Sep', 9), ('Oct', 10), ('Nov', 11), ('Dec', 12);

如果我注释第二条语句并执行第一条,然后执行相反的操作(注释第一条语句并取消注释第二条语句并执行它),那么它将起作用。它创建表,然后填充它。只是...我想一次完成所有操作。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

在CREATE TABLE中使用AS SELECT子句:

CREATE OR REPLACE TABLE `foo.bar.months` AS
SELECT *
FROM UNNEST(
  ARRAY<STRUCT<text STRING, number INT64>>[
    ('Jan', 1), ('Feb', 2), ('Mar', 3), ('Apr', 4),
    ('May', 5), ('Jun', 6), ('Jul', 7), ('Aug', 8),
    ('Sep', 9), ('Oct', 10), ('Nov', 11), ('Dec', 12)]);

答案 1 :(得分:2)

WebUI不支持多个查询。

您可以做的是粘贴内容。然后突出显示每个语句,然后单击“运行选定项”。而且您需要多次执行此操作。

enter image description here