雪花无法使用插入到具有 md5 字段的方式插入多行
Snowflake Unable to insert multiple rows using insert into having md5 field
我正在使用 INSERT INTO table VALUES
添加多行,如下所示:
insert into hub values
(md5(md5('test1')) as enc, CURRENT_TIMESTAMP() as ct, 'DATA_SOURCE_1', 'test1'),
(md5(md5('test2')) as enc, CURRENT_TIMESTAMP() as ct, 'DATA_SOURCE_1', 'test2')
;
我收到以下错误:
SQL compilation error: syntax error line 2 at position 19 unexpected
'as'. syntax error line 2 at position 28 unexpected
'CURRENT_TIMESTAMP'. syntax error line 2 at position 50 unexpected
''DATA_SOURCE_1''. syntax error line 3 at position 19 unexpected 'as'. syntax
error line 3 at position 28 unexpected 'CURRENT_TIMESTAMP'. syntax
error line 3 at position 50 unexpected ''DATA_SOURCE_1''.
我试图从子查询中删除 as
,但出现以下错误:
SQL compilation error: Invalid expression [MD5(MD5('test'))] in VALUES
clause
我知道 md5
应该 return 一个值而不是一个表达式,这就是我使用 AS
但它不起作用的原因。
这对我来说似乎是一个错误,它有点类似于 。您可以用不同的方式编写插入,但是以获得相同的结果:
insert into hub
select md5(md5('test1')), CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test1'
union all
select md5(md5('test2')), CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test2'
或者像下面这样,如果 VALUE
部分有很多行,这可能会更简洁:
insert into hub
select
md5(md5(column1)),
column2,
column3,
column4
from
values
('test1', CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test1'),
('test2', CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test2')
我正在使用 INSERT INTO table VALUES
添加多行,如下所示:
insert into hub values
(md5(md5('test1')) as enc, CURRENT_TIMESTAMP() as ct, 'DATA_SOURCE_1', 'test1'),
(md5(md5('test2')) as enc, CURRENT_TIMESTAMP() as ct, 'DATA_SOURCE_1', 'test2')
;
我收到以下错误:
SQL compilation error: syntax error line 2 at position 19 unexpected 'as'. syntax error line 2 at position 28 unexpected 'CURRENT_TIMESTAMP'. syntax error line 2 at position 50 unexpected ''DATA_SOURCE_1''. syntax error line 3 at position 19 unexpected 'as'. syntax error line 3 at position 28 unexpected 'CURRENT_TIMESTAMP'. syntax error line 3 at position 50 unexpected ''DATA_SOURCE_1''.
我试图从子查询中删除 as
,但出现以下错误:
SQL compilation error: Invalid expression [MD5(MD5('test'))] in VALUES clause
我知道 md5
应该 return 一个值而不是一个表达式,这就是我使用 AS
但它不起作用的原因。
这对我来说似乎是一个错误,它有点类似于
insert into hub
select md5(md5('test1')), CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test1'
union all
select md5(md5('test2')), CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test2'
或者像下面这样,如果 VALUE
部分有很多行,这可能会更简洁:
insert into hub
select
md5(md5(column1)),
column2,
column3,
column4
from
values
('test1', CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test1'),
('test2', CURRENT_TIMESTAMP(), 'DATA_SOURCE_1', 'test2')