PostgreSQL在JSON中自动增加

时间:2015-06-18 05:00:22

标签: json postgresql auto-increment postgresql-9.4

是否可以仅使用SQL(如 serial )而不是服务器代码在P​​ostgreSQL的新JSON类型中自动增加?

1 个答案:

答案 0 :(得分:5)

我无法想象你为什么这么想,但确定。

CREATE SEQUENCE whywouldyou_jsoncol_seq;

CREATE TABLE whywouldyou (
    jsoncol json not null default json_object(ARRAY['id'], ARRAY[nextval('whywouldyou_jsoncol_seq')::text]),
    dummydata text;
);

ALTER SEQUENCE whywouldyou_jsoncol_seq OWNED BY whywouldyou.jsoncol;

insert into whywouldyou(dummydata) values('');

select * from whywouldyou;

   jsoncol    | dummydata 
--------------+-----------
 {"id" : "1"} | 
(1 row)

请注意,使用此特定公式时,字符串 "1"不是json中的数字1。如果要避免这种情况,您可能希望以另一种方式形成json对象。这只是一个例子。