是否可以仅使用SQL(如 serial )而不是服务器代码在PostgreSQL的新JSON类型中自动增加?
答案 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对象。这只是一个例子。