JSON内的PostgreSQL自动递增

Nat*_*teW 4 postgresql json auto-increment postgresql-9.4

是否可以仅使用SQL(例如serial)而不使用服务器代码在PostgreSQL的新JSON类型内部自动递增?

Cra*_*ger 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)
Run Code Online (Sandbox Code Playgroud)

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