【问题标题】:PostgreSQL Auto-increment inside a JSONJSON 中的 PostgreSQL 自动增量
【发布时间】:2015-09-03 14:02:40
【问题描述】:

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

【问题讨论】:

  • 我能想到的唯一方法是通过使用序列填充该属性的触发器
  • 你能提供一个例子/伪代码吗?

标签: json postgresql auto-increment postgresql-9.4


【解决方案1】:

我真的无法想象你为什么想要,但可以肯定。

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)

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

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2016-08-19
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多