【问题标题】:Setting default value for a json column为 json 列设置默认值
【发布时间】:2014-10-22 22:16:42
【问题描述】:

我正在研究使用 Postgres 通过 activerecords 将 json 设置为列的功能json handling features 我想知道如何在创建 {name: '', other_name: ''} 之类的表时给它一个默认值等等...

我还想了解如何为列创建默认 json 值,如上面的示例,然后我填写值,但在其他时间将其重置为“默认”如何看起来会这样。

【问题讨论】:

    标签: ruby-on-rails json postgresql activerecord


    【解决方案1】:

    它就像任何其他默认值一样,一旦你修复了 json 语法:

    CREATE TABLE mytable (
        someothercol integer,
        somecol json DEFAULT '{"name": "", "other_name": ""}'
    );
    

    如果您设置为DEFAULT,它就是这样做的:

    regress=> INSERT INTO mytable(someothercol, somecol) VALUES (42, '{"nondefault": 1}');
    INSERT 0 1
    regress=> SELECT * FROM mytable;
     someothercol |      somecol      
    --------------+-------------------
               42 | {"nondefault": 1}
    (1 row)
    
    regress=> UPDATE mytable SET somecol = DEFAULT WHERE someothercol = 42;
    UPDATE 1
    regress=> SELECT * FROM mytable;
     someothercol |            somecol             
    --------------+--------------------------------
               42 | {"name": "", "other_name": ""}
    (1 row)
    

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 2020-07-24
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      • 2019-05-15
      • 2016-12-28
      相关资源
      最近更新 更多