一、外键建立要求:
1.要创建的外键的数据表A(主表)和关联表B(从表)必须采用同样的引擎如InnoDB存储引擎
2.要创建的A表字段数据类型必须和B表对应的字段的数据类型保持一致,包括长度
二、django1.1.1与django3.2.0区别
对于django3.2.0,默认是BIgAutoField创立主键,这在mysql中表示为bigint,可以理解为最大int长度为所示值(比如例子中的20),这种值增大了数据库的可扩展性,但是也加大了数据库的存储量。那么此时如果数据库中的表并不全是在django中采用模板语言创建的。
(1)show create table sbc(查看你自己建的表的字段情况)
(2)show engines;(查询默认引擎等情况)
(3)show engine innodb status;(可以查看引擎innodb的工作状态,比如外键错误信息也可以看到)
此时我们主键为int的表与主键为bigint的表建立外键关系时,就会出现无法设立外键的情况。
django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')