将字符串插入text []列

时间:2015-08-06 09:01:55

标签: postgresql psql

我有以下问题。

  1. 我将从webservice接收输入作为文本插入到某个psql表中。假设

    创建表测试(id serial,myvalues text [])

  2. 收到的输入将是:    insert into test(myvalues) values ('this,is,an,array');

    1. 我想在插入之前创建一个触发器,它可以将此字符串转换为text []并插入
    2. 我想到的第一个想法是在插入

      之前创建一个触发器
      create function test_convert() returns trigger as $BODY%
       BEGIN
         new.myvalues = string_to_array(new.myvalues,',')
         RETURNS NEW
       END; $BODY$ language plpgsql
      

      但这不起作用

2 个答案:

答案 0 :(得分:0)

假设您收到以下格式this is an array的文字,并且您希望将其转换为this,is,an,array,那么您可以使用string_to_array('this is an array', ' ')并将其转换。但是,如果您收到逗号分隔,那么您可以使用它。

答案 1 :(得分:0)

您可以使用string_to_array函数将字符串转换为插入查询中的字符串数组:

INSERT INTO test ( myvalues )
VALUES ( string_to_array( 'this,is,an,array', ',' ) );