В соответствии с разделом Redshift WITH documentation вы можете использовать предложение WITH с инструкцией INSERT INTO...SELECT
. Однако, проверяя это, я получаю следующую ошибку. Разве это невозможно, или у меня синтаксис неправильный?RedShift INSERT INTO TABLE от CTE
CREATE TABLE TestCTEInsert (SomeTimestamp TIMESTAMP);
WITH CTE AS
(SELECT GETDATE() as SomeTimestamp)
INSERT INTO TestCTEInsert
(SomeTimestamp) SELECT SomeTimestamp from CTE;
ERROR: 42601: syntax error at or near "insert"
Интересно, что он делает поддержка вставки в новую таблицу т.е.
WITH CTE AS
(SELECT GETDATE() as SomeTimestamp)
INSERT SomeTimestamp INTO NewTable
SELECT SomeTimestamp from CTE;
The command completed successfully (1 rows affected)
EDIT: Просто, чтобы подтвердить, я получаю ту же ошибку при использовании INTEGER
колонки, а чем TIMESTAMP
:
CREATE TABLE TestCTE (SomeInt INTEGER);
WITH CTE AS
(SELECT 1 as SomeInt)
INSERT INTO TestCTEInsert
SELECT SomeInt from CTE;
ERROR: 42601: syntax error at or near "insert"
попробуйте удалить (SomeTimestamp) в вкладыш – sagi
Спасибо за ваше предложение. Это возвращает ту же ошибку: «ОШИБКА: 42601: синтаксическая ошибка в или рядом с« insert »' – fez
Насколько я знаю, вы не можете вставить явное значение в столбец timestamp. –