class A(models.Model):
title = models.CharField(max_length=240,null=True, blank=True, db_index=True)
body = models.TextField(blank=True, null=True)
adinfo = models.CharField(max_length=240, null=True, blank=True, db_index=True)
url = models.CharField(max_length=10000, null=True,blank=True)
img = models.CharField(max_length=10000, null=True,blank=True)
created_at = models.DateTimeField(auto_now_add=True, null=True, db_index=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
unique_together = (('title','adinfo'),)
mysql> select * from mo_a where id = 1113\G;
*************************** 1. row ***************************
id: 1113
title: Tides Tavern
body: Come in and enjoy the morning sun or a nice sunset with breakfast, lunch or dinner. Find a seat, put your feet up & enjoy. Click here!
adinfo: NULL
url:
img: http://creative.ak.fbcdn.net/v41818/flyers/125/47/13039135731061564765_1_89254352.jpg
created_at: 2011-07-08 00:41:18
updated_at: 2011-07-08 00:41:18
1 row in set (0.00 sec)
ERROR:
No query specified
mysql> select * from mo_a where id = 1114\G;
*************************** 1. row ***************************
id: 1114
title: Tides Tavern
body: Come in and enjoy the morning sun or a nice sunset with breakfast, lunch or dinner. Find a seat, put your feet up & enjoy. Click here!
adinfo: NULL
url:
img: http://creative.ak.fbcdn.net/v41818/flyers/125/47/13039135731061564765_1_89254352.jpg
created_at: 2011-07-08 00:41:22
updated_at: 2011-07-08 00:41:22
1 row in set (0.00 sec)
ERROR:
No query specified
这是正常的吗?正如你所看到的,我有标题和adinfo独特...我不想插入#1114。但确实如此。如何删除数据库中的所有重复项?
答案 0 :(得分:1)
您指定UNIQUE约束的方式,表明您不允许为对插入重复项。
如您所指定,您可以插入对:
(1113, 'Tides Tavern') and (1114, 'Tides Tavern')
或
(1113, 'Roman road') and (1113, 'Tides Tavern')
但不是:
(1113, 'Tides Tavern') and (1113, 'Tides Tavern')
换句话说,来自Postgresql文档:“多列唯一索引只会拒绝所有索引列在两行中相等的情况。”