Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Postgres中使用jsonb(与Django&x27;的JSONField一起使用)时,唯一索引实际上做什么?_Django_Postgresql - Fatal编程技术网

在Postgres中使用jsonb(与Django&x27;的JSONField一起使用)时,唯一索引实际上做什么?

在Postgres中使用jsonb(与Django&x27;的JSONField一起使用)时,唯一索引实际上做什么?,django,postgresql,Django,Postgresql,这有点像: class JsonHavingModel(models.Model): the_field = JSONField(unique=True) 但这究竟意味着什么呢?它只检查钥匙吗?只是价值观?只是文本JSON文本?是否检查整个对象层次结构?这是个愚蠢的问题吗?生命的意义是什么?它的意思正是你所期望的——那一列中的值在该表中必须是唯一的 假设您的列是一个jsonb值,这意味着要比较结构是否相等 CREATE UNIQUE INDEX app_jsonhavingmodel_th

这有点像:

class JsonHavingModel(models.Model):
  the_field = JSONField(unique=True)

但这究竟意味着什么呢?它只检查钥匙吗?只是价值观?只是文本JSON文本?是否检查整个对象层次结构?这是个愚蠢的问题吗?生命的意义是什么?

它的意思正是你所期望的——那一列中的值在该表中必须是唯一的

假设您的列是一个jsonb值,这意味着要比较结构是否相等

CREATE UNIQUE INDEX app_jsonhavingmodel_the_field_c1f3c983_uniq ON app_jsonhavingmodel (the_field);

谢谢你的回答!我真不敢相信我问这个问题是从什么时候开始的。昨天我太累了,有点神志不清。
SELECT '{"a":3, "b":2}'::jsonb = '{"b":2, "a":3}'::jsonb;
 ?column? 
----------
 t
(1 row)