Ruby on rails 设置json列的默认值
我正在考虑使用Postgres的功能,即通过activerecords将json设置到列中。我想知道,在创建类似于Ruby on rails 设置json列的默认值,ruby-on-rails,json,postgresql,activerecord,Ruby On Rails,Json,Postgresql,Activerecord,我正在考虑使用Postgres的功能,即通过activerecords将json设置到列中。我想知道,在创建类似于{name:'',other_name:''}之类的表时,如何给它一个默认值 我还想了解,如果我为一个列创建一个默认json值,比如上面的示例,然后稍后我填充这些值,但在其他某个时间将其重置为“默认值”,这将是什么样子。这就像任何其他默认值一样,一旦您修复了json语法: CREATE TABLE mytable ( someothercol integer, som
{name:'',other_name:''}
之类的表时,如何给它一个默认值
我还想了解,如果我为一个列创建一个默认json值,比如上面的示例,然后稍后我填充这些值,但在其他某个时间将其重置为“默认值”,这将是什么样子。这就像任何其他默认值一样,一旦您修复了json语法:
CREATE TABLE mytable (
someothercol integer,
somecol json DEFAULT '{"name": "", "other_name": ""}'
);
如果设置为默认值
,则只会执行以下操作:
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)