#azure #snowflake-cloud-data-platform #snowflake-schema
Вопрос:
У меня есть таблица с 4 столбцами (СЦЕНАРИЙ, ГОД, ПЕРИОД, INSERT_DTS). Я создал таблицу, как показано ниже:
create or replace TABLE TEST_DB.STG_TEST.HFM_STG (
SCENARIO VARCHAR(50),
YEAR VARCHAR(4),
PERIOD VARCHAR(3),
INSERT_DTS TIMESTAMP DEFUALT CURRENT_TIMEstamp()
);
когда я попытался скопировать данные из текстового файла в Snowflake с помощью операции копирования, я получил следующее сообщение об ошибке: «Количество столбцов в файле (3) не совпадает с количеством столбцов в соответствующей таблице (4)».
Любое решение для устранения этой проблемы, поскольку столбец INSERT_DTS должен быть значением по умолчанию ?
Ответ №1:
Вам нужно использовать ключевое слово ПО умолчанию для значения во ВСТАВКЕ:
create or replace table XYZ (x varchar(200), y varchar(200), z varchar(200), t timestamp default current_timestamp());
insert into XYZ values ('X', 'Y', 'Z', DEFAULT);
SELECT * FROM XYZ;
Смотрите здесь
Для КОПИРОВАНИЯ В вы можете сделать что-то вроде этого:
COPY INTO XYZ (x, y, z) FROM (SELECT $1, $2, $3 FROM @~/worksheet_data/metadata);
Вышеизложенное вставит в столбец t значение по умолчанию.