[外键约束问题]django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
DATABASES= {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ebusiness',
'USER':'root',
'PASSWORD':'123456',
'HOST':'localhost',
'PORT':'3306',
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
}#加入这个在setting.py文件中数据库配置中
#'OPTIONS':{'init_command':'SET engine=InnoDB',},
我正在用MySQL数据库构建一个
django
应用程序。当我第一次运行“python manage.py mig
ra
te”时,一些表创建得很好,然后出现一些错误。出现的错误是:
django
.
db
.
utils
.
Integ
rity
Error
: (
1215
, 'Cannot
add
for
eign
key
const
ra
int
')当我运行这个MySQL命令时-SHOW ENGINE INNO
DB
STATU...
File "C:\Python38\lib\site-packages\pymysql\cursors.py", line 163, in execute
result = self._query(query)
File "C:\Python38\lib\site-packages\pymysql\cursors.py", line 321, in _query
conn.query(q)
File "C:\Python38\lib\site-packages\p
(2)设置外键时“删除时”设置为“SET NULL”3、设置外键时“删除时”设置为“SET NULL”用Navicat在新建表的外键时,弹出如下窗口。1、检查两张关联表对应的字段数据类型是否一致。(1)外键对应的字段数据类型不一致。(3)两张表的存储引擎不一致。2、查询存储引擎是否相同。
今天用数据库时出现
Error
1215
:Cannot
add
for
eign
key
const
ra
int
报错,在经历了一番波折后解决了
问题
的所在,写下这篇博客记录一下。
运行的代码:
CREATE TABLE `admitpatient_room` (
`PatientID`
int
(10) NOT NULL,
`Disease` varchar(50) DEFAULT NULL,
`AdmitDate` date DEFAULT NULL,
`RoomNo`
int
(5) DEF.
mysql中添加
外键约束
遇到一下情况:
cannot
add
for
eign
key
const
ra
int
出现这个
问题
一般是开发工作者对外键的使用出现了疏忽,我们先清晰一下外键的使用:
外键字段不能为该表的主键;
外键字段参考字段必须为参考表的主键。
如果出现”cannot
add
for
eign
key
const
ra
int
”的情况,建议先检查一下,主表是否有主键以及从表关联字段是否为从表...
http://blog.csdn.net/python_tty/article/details/50909161http://stackoverflow.com/questions/28561458/
django
-mysql-
error
-when-creating-tables
from
django
.
db
import models
class Reporter(models.Model):
full_name = models.CharField(max_length=70)
# mysite/article/models.py
class Article(models.Model):
我使用Ontonotes数据库工具,但遇到
问题
.我读了它的文档,它说这个工具在mysql 5.0上运行良好 . 但是,我找不到这个版本 . 所以,我安装了mysql 5.7 . 出现此
问题
,
问题
是这样的:python on/tools/init_
db
.py --init ontonotes localhost root ontonotes-release-4.0/初始化
DB
.../Users/...
解决:“
外键约束
失败”,可能是数据迁移操作过程中出
问题
了,导致数据表里的对应关系混乱,简单粗暴的方法就是手动删除自己创建的App的mig
ra
tions文件夹下除了__init__.py的所有文件(包括pycache文件夹),然后再手动删除根目录下的
db
.sqlite3文件(这里面存了数据库表)
运行数据迁移语句
python manage.py makemig
ra
tions
python manage.py mig
ra
te
此后,那些删除的东西都会重建,然后我试验完成后发现我创建的管理员和用..
django
.
db
.
utils
.Ope
ra
tional
Error
: (2013, ‘Lost connection to MySQL server during query‘)
解决办法:看看MySQL服务是否启动
在
Django
2.2启动时出现错误:Lookup
Error
: No installed app with label ‘admin’
解决办法:
1.配置好数据库
2. pip install mysqlclient
3.如果以上还是没有解决去下载 pip install
django
==2.1