Geo*_*sos 8 postgresql types casting postgresql-9.1
我有以下代码:
BEGIN
x := split_part(text, ',', 1);
UPDATE albumphoto SET order = 1 WHERE idtable = 1 AND idx = x;
END
Run Code Online (Sandbox Code Playgroud)
但我的列表名idx是一个数字类型,并split_part返回一个字符类型的变量x.我尝试过使用CAST,但我不知道如何正确使用它.
有任何想法吗?
Ant*_*nko 14
像这样:
UPDATE albumphoto SET order = 1 WHERE idtable = 1 AND idx = CAST (x AS INTEGER);
Run Code Online (Sandbox Code Playgroud)
(使用适当的数字类型代替INTEGER).
或者更简单:
UPDATE albumphoto
SET order = 1
WHERE idtable = 1
AND idx = split_part(text, ',', 1)::int -- or whatever type it is
AND order IS DISTINCT FROM 1;
Run Code Online (Sandbox Code Playgroud)
expression::type是一种简单的(非SQL标准)Postgres方式." 类型转换 "一章中的手册中的详细信息.
有关PostgreSQL中数据类型的更多信息.
我添加的最后一个谓词是有用的,如果order已经可以 1,在这种情况下更新不会改变任何东西,但仍然花费相同.而不是做任何事情.相关(考虑最后一段):
而且你在这里不需要变量.
| 归档时间: |
|
| 查看次数: |
47889 次 |
| 最近记录: |