查找要插入BigQuery的列名

Niv*_*ivi 3 google-bigquery

我正在尝试执行"插入表"并看到我们需要显式指定列名.有没有办法获得这些数据,而无需手动输入?我在BigQuery上这样做.

Ell*_*ard 10

下面是一个从表中获取列名称(不产生成本)并同时构建INSERT列表的示例:

WITH EmptyReference AS (
  SELECT *
  FROM `bigquery-public-data.samples.shakespeare`
  LIMIT 0
)
SELECT
  CONCAT(
    'INSERT dataset.tablename (',
    ARRAY_TO_STRING(
      REGEXP_EXTRACT_ALL(
        TO_JSON_STRING((SELECT AS STRUCT t.*)),
        r'"([^"]+)":'),
      ', '),
    ')')
FROM (
  SELECT AS VALUE t
  FROM EmptyReference AS t
  UNION ALL SELECT AS VALUE NULL
) AS t
Run Code Online (Sandbox Code Playgroud)

返回:

INSERT dataset.tablename (word, word_count, corpus, corpus_date)     
Run Code Online (Sandbox Code Playgroud)