Невозможно выбрать _PARTIONTIME в SELECT, но можно выбрать его во INSERT - PullRequest
0 голосов
/ 21 февраля 2019

При запуске ниже SELECT я получаю это сообщение об ошибке

Ошибка: неверное имя поля "_PARTITIONTIME".Имена полей не могут начинаться с (без учета регистра) префиксов _PARTITION, TABLE , FILE и _ROW_TIMESTAMP

SELECT
    _PARTITIONTIME,
    jobId
FROM
    `project.dataset.audit`
WHERE
    _PARTITIONTIME >= TIMESTAMP("2019-02-20")

Однако, когда яиспользовать его в DML, запрос работает

INSERT INTO
  `project.dataset.audit_clustered`
  (
      _PARTITIONTIME,
      jobId,
  )
SELECT
    _PARTITIONTIME,
    jobId
FROM
    `project.dataset.audit`
WHERE
    _PARTITIONTIME >= TIMESTAMP("2019-02-20")

У меня есть 2 вопроса:

  1. Почему не работает только SELECT
  2. Это гарантия?что INSERT будет работать правильно и данные будут вставлены в правильный раздел целевой таблицы

1 Ответ

0 голосов
/ 21 февраля 2019

Заменить

SELECT  _PARTITIONTIME

на

SELECT  _PARTITIONTIME AS something

Это потому, что результирующий набор не может иметь столбец, начинающийся с _, но вы можете назвать его как угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...