使用Django中遇到这样一个需求,对一个表的几个字段做 联合唯一索引,例如学生表中 姓名和班级 2个字段在一起表示一个唯一记录。

Django中model部分的写法, 参见 unique-together 部分文档。

class MyModel(models.Model):
 field1 = models.CharField(max_length=50)
 field2 = models.CharField(max_length=50)

 class Meta:
 unique_together = ('field1', 'field2',)

对应到 MySQL 中的 SQL , 类似如下的语句

CREATE UNIQUE INDEX index_name ON tablename(field1, field2);