首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql将字符更改为字符变化数组

postgresql将字符更改为字符变化数组
EN

Stack Overflow用户
提问于 2018-01-24 02:37:22
回答 2查看 8.9K关注 0票数 3

下面我在表中有两列。他们都说他们的字符是可变的,但是zoning_description后面有一个数组符号。我需要更改分区列以匹配zoning_description列类型。我怎样才能做到这一点。

另外,这两种列类型之间有什么区别.由于这个问题,我后来在另一个进程中遇到了一个错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-24 08:48:37

只要用铸造改变字体(如你的桌子):

代码语言:javascript
复制
t=# create table z as select '{R}'::varchar zoning, '{"Blah-ah ah"}'::varchar[] zoning_description;
SELECT 1
t=# select * from z;
 zoning | zoning_description
--------+--------------------
 {R}    | {"Blah-ah ah"}
(1 row)

变更类型:

代码语言:javascript
复制
t=# alter table z alter column zoning type varchar[] using zoning::varchar[];
ALTER TABLE
t=# select * from z;
 zoning | zoning_description
--------+--------------------
 {R}    | {"Blah-ah ah"}
(1 row)

检查栏:

代码语言:javascript
复制
t=# \d z
                            Table "postgres.z"
       Column       |        Type         | Collation | Nullable | Default
--------------------+---------------------+-----------+----------+---------
 zoning             | character varying[] |           |          |
 zoning_description | character varying[] |           |          |
票数 2
EN

Stack Overflow用户

发布于 2018-01-24 02:58:49

看起来zoning_description是一个VARCHAR值数组,而zoning只是一个VARCHAR。如果要将zoning转换为与zoning_description相同的数据类型,则只需执行以下操作:

代码语言:javascript
复制
SELECT ARRAY[zoning]

这将将其转换为数组数据类型。

工作查询

代码语言:javascript
复制
SELECT 
    MyVarchar, 
    PG_TYPEOF(MyVarchar),  -- character varying
    MyVarcharArray, 
    PG_TYPEOF(MyVarcharArray),  -- character varying[]
    ARRAY[MyVarchar], 
    PG_TYPEOF(ARRAY[MyVarchar])  -- character varying[]
FROM (
    SELECT 
    CAST('rammstein' AS VARCHAR) AS MyVarchar, 
    ARRAY[CAST('du hast' AS VARCHAR)] AS MyVarcharArray
) src
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48413987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档