2016-09-06 3 views
2
class JsonHavingModel(models.Model): 
    the_field = JSONField(unique=True) 

これが行うような何か:Postgresのjsonb(DjangoのJSONFieldで使用されています)では、ユニークなインデックスは実際に何をしていますか?

CREATE UNIQUE INDEX app_jsonhavingmodel_the_field_c1f3c983_uniq ON app_jsonhavingmodel (the_field); 

しかし、それは実際に何を意味するのでしょうか?それはちょうどキーをチェックしますか?ちょうど価値?リテラルなJSONテキストですか?オブジェクト階層全体をチェックしていますか?これは愚かな質問ですか?人生の意味とは?

答えて

4

これは、その列の値がそのテーブル全体で一意でなければならないことを意味すると見なされます。

列がjsonb値であると仮定すると、構造が等価であるかどうかが比較されます。

SELECT '{"a":3, "b":2}'::jsonb = '{"b":2, "a":3}'::jsonb; 
?column? 
---------- 
t 
(1 row) 
+0

答えてくれてありがとう!私は、私がちょうどそれを試してみることができたときに開始する質問を信じることができません。私は疲れていたので、私は昨日少しばかげていた。 –

関連する問題