Django 设置联合唯一 unique_together migrate时报错处理

简介:

一个表的model中,根据生产环境需要,需要设置site和对应的cdn服务器ip是联合唯一的,最开始创建表的时候,没有考虑到这个问题,后来要设置unique_together,但是在migrate的时候,报错:a unique database constraint for 2 or more fields together


很明显数据库中有很多这两个字段重复的数据,所以要删除后再migrate就没问题了,但是怎么删除这些数据呢?


通过以下两个方法即可:

1)CREATE TEMPORARY TABLE tmp_table SELECT * FROM 目标表;


2)delete from 目标表 where id not in ( select max(id) from tmp_table group by cdn_ipaddr,site_id);


说明:

创建临时表,把目标表的数据复制到临时表中;

删除目标表中数据,只留id最大的重复数据即可!



本文转自 shine_forever 51CTO博客,原文链接:http://blog.51cto.com/shineforever/1729286

相关文章
|
10月前
|
Linux Python Windows
django的settings中设置中文支持
django的settings中设置中文支持
|
前端开发 JavaScript Python
Python项目:Django 设置应用程序的样式并进行部署
Python项目:Django 设置应用程序的样式并进行部署
120 0
Python项目:Django 设置应用程序的样式并进行部署
|
Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
|
数据库 Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
123 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
|
API 网络架构 Python
Django API 开发:视图设置和路由(下)
在本章中,我们将向现有项目中添加两个新的 API 端点,并了解如何从视图和 URL 切换到视图集和路由器可以用更少的代码实现相同的功能。
|
API 数据库 网络架构
Django API 开发:视图设置和路由(上)
在本章中,我们将向现有项目中添加两个新的 API 端点,并了解如何从视图和 URL 切换到视图集和路由器可以用更少的代码实现相同的功能。
Django API 开发:视图设置和路由(上)
|
SQL 安全 Java
Django的Migrate和Makemigrations讲解
Django的Migrate和Makemigrations讲解
465 0
Django的Migrate和Makemigrations讲解
|
数据库 Python
Django 做 migrate 时,当你的表已存在的处理方法
在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误。
|
Python
Django的时区设置
Django的时区设置
|
Python
Django如何设置首页(默认输入域名或者ip即可跳转到指定页面)
Django如何设置首页(默认输入域名或者ip即可跳转到指定页面)
843 0