我正在尝试使用此脚本将生成的列添加到现有表中。
alter table Asset_Store add column
md5_hash VARCHAR(100) GENERATED ALWAYS AS
(CAST(UPPER(
case
when OR_ID is not null then MD5(cast(OR_ID as varchar(100)))
when Asset_ID is not null then MD5(Asset_ID)
else null
end
) as VARCHAR(100)))
STORED
;
但我收到一个错误:
SQL Error [42601]: ERROR: syntax error at or near "("
Position: 88
ERROR: syntax error at or near "("
Position: 88
ERROR: syntax error at or near "("
Position: 88
有什么问题 我不明白
在我的Asset_Store表的架构中,列
OR_ID为,int
而Asset_ID为varchar(100)
。
我猜它期望语法略有不同...但是正确的语法是什么?
您的语法正确。您的PostgreSQL版本显然不是。
在版本12中:
create table asset_store(or_id text, asset_id text);
alter table Asset_Store add column
md5_hash VARCHAR(100) GENERATED ALWAYS AS
(CAST(UPPER(
case
when OR_ID is not null then MD5(cast(OR_ID as varchar(100)))
when Asset_ID is not null then MD5(Asset_ID)
else null
end
) as VARCHAR(100)))
STORED
;
ALTER TABLE Time: 17.678 ms
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句