所以我试图将外键约束添加到我的数据库作为项目需求,它在不同的表上第一次或第二次工作,但我有两个表,在尝试添加外键约束时我得到一个错误.我得到的错误消息是:
ERROR 1215(HY000):无法添加外键约束
这是我用来创建表的SQL,两个有问题的表是Patient和Appointment.
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=1;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
CREATE SCHEMA IF NOT EXISTS `doctorsoffice` DEFAULT CHARACTER SET utf8 ;
USE `doctorsoffice` ;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`doctor`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`doctor` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`doctor` (
`DoctorID` INT(11) NOT NULL AUTO_INCREMENT ,
`FName` VARCHAR(20) NULL DEFAULT NULL ,
`LName` VARCHAR(20) NULL DEFAULT NULL ,
`Gender` VARCHAR(1) NULL DEFAULT NULL ,
`Specialty` VARCHAR(40) NOT NULL DEFAULT …Run Code Online (Sandbox Code Playgroud) 新的迁移(添加一个简单的表)在迁移过程中给出错误“无法添加外键约束”。
这是一个现有的模型,称为EventLog:
class EventLog(models.Model):
"""
The event log.
"""
user = models.ForeignKey(User, blank=True, null=True)
timestamp = models.DateTimeField(auto_now=True)
text = models.TextField(blank=True, null=True)
ip = models.CharField(max_length=15)
metadata = JSONField(default={},blank=True)
product = models.TextField(default=None,blank=True, null=True)
type = models.ForeignKey(EventType)
def __unicode__(self):
return "[%-15s]-[%s] %s (%s)" % (self.type, self.timestamp, self.text, self.user)
def highlite(self):
if self.type.highlite:
return self.type.highlitecss
return False
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试创建的新模型:
class EventLogDetail(models.Model):
# NOTE: I've already tried switching 'EventLog' out for just EventLog.
eventlog = models.ForeignKey('EventLog', related_name='details')
order = models.IntegerField(default=0)
line = models.CharField(max_length=500)
class …Run Code Online (Sandbox Code Playgroud)