JSON 内的 PostgreSQL 自动递增
PostgreSQL Auto-increment inside a JSON
是否可以仅使用 SQL(如 serial)和在 PostgreSQL 的新 JSON 类型中自动递增不是服务器代码?
我真的无法想象你为什么想要,但是可以。
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 对象。这只是一个例子。
是否可以仅使用 SQL(如 serial)和在 PostgreSQL 的新 JSON 类型中自动递增不是服务器代码?
我真的无法想象你为什么想要,但是可以。
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 对象。这只是一个例子。