copay mysql数据库_MySQL无法添加外键约束
因此,我作为项目需求试图将外键约束添加到数据库中,并且它第一次或在两个不同的表上运行,但是在尝试添加外键约束时,我在两个表上遇到错误。我收到的错误消息是:
错误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 'General Practitioner' ,
UNIQUE INDEX `DoctorID` (`DoctorID` ASC) ,
PRIMARY KEY (`DoctorID`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`medicalhistory`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`medicalhistory` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`medicalhistory` (
`MedicalHistoryID` INT(11) NOT NULL AUTO_INCREMENT ,
`Allergies` TEXT NULL DEFAULT NULL ,
`Medications` TEXT NULL DEFAULT NULL ,
`ExistingConditions` TEXT NULL DEFAULT NULL ,
`Misc` TEXT NULL DEFAULT NULL ,
UNIQUE INDEX `MedicalHistoryID` (`MedicalHistoryID` ASC) ,
PRIMARY KEY (`MedicalHistoryID`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`Patient`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`Patient` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`Patient` (
`PatientID` INT unsigned NOT NULL AUTO_INCREMENT ,
`FName` VARCHAR(30) NULL ,
`LName` VARCHAR(45) NULL ,
`Gender` CHAR NULL ,
`DOB` DATE NULL ,
`SSN` DOUBLE NULL ,
`MedicalHistory` smallint(5) unsigned NOT NULL,
`PrimaryPhysician` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`PatientID`) ,
UNIQUE INDEX `PatientID_UNIQUE` (`PatientID` ASC) ,
CONSTRAINT `FK_MedicalHistory`
FOREIGN KEY (`MEdicalHistory` )
REFERENCES `doctorsoffice`.`medicalhistory` (`MedicalHistoryID` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `FK_PrimaryPhysician`
FOREIGN KEY (`PrimaryPhysician` )
REFERENCES `doctorsoffice`.`doctor` (`DoctorID` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`Appointment`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`Appointment` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`Appointment` (
`AppointmentID` smallint(5) unsigned NOT NULL AUTO_INCREMENT ,
`Date` DATE NULL ,
`Time` TIME NULL ,
`Patient` smallint(5) unsigned NOT NULL,
`Doctor` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`AppointmentID`) ,
UNIQUE INDEX `AppointmentID_UNIQUE` (`AppointmentID` ASC) ,
CONSTRAINT `FK_Patient`
FOREIGN KEY (`Patient` )
REFERENCES `doctorsoffice`.`Patient` (`PatientID` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `FK_Doctor`
FOREIGN KEY (`Doctor` )
REFERENCES `doctorsoffice`.`doctor` (`DoctorID` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`InsuranceCompany`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`InsuranceCompany` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`InsuranceCompany` (
`InsuranceID` smallint(5) NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR(50) NULL ,
`Phone` DOUBLE NULL ,
PRIMARY KEY (`InsuranceID`) ,
UNIQUE INDEX `InsuranceID_UNIQUE` (`InsuranceID` ASC) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`PatientInsurance`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`PatientInsurance` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`PatientInsurance` (
`PolicyHolder` smallint(5) NOT NULL ,
`InsuranceCompany` smallint(5) NOT NULL ,
`CoPay` INT NOT NULL DEFAULT 5 ,
`PolicyNumber` smallint(5) NOT NULL AUTO_INCREMENT ,
PRIMARY KEY (`PolicyNumber`) ,
UNIQUE INDEX `PolicyNumber_UNIQUE` (`PolicyNumber` ASC) ,
CONSTRAINT `FK_PolicyHolder`
FOREIGN KEY (`PolicyHolder` )
REFERENCES `doctorsoffice`.`Patient` (`PatientID` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `FK_InsuranceCompany`
FOREIGN KEY (`InsuranceCompany` )
REFERENCES `doctorsoffice`.`InsuranceCompany` (`InsuranceID` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
USE `doctorsoffice` ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
copay mysql数据库_MySQL无法添加外键约束相关推荐
- (19)一篇掌握MySQL数据库基础下 基本操作(外键约束、建表原则、多表查询、子查询)
MySQL数据库基础下 一.修改表--添加外键约束 二.多表之间的建表原则 1.建数据库原则:通常情况下,一个项目/应用建一个数据库 2.多表之间的表原则: (1)一对多:分类和商品 (一个分类对应多 ...
- MySQL:错误代码1215 无法添加外键约束的解决思路
环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...
- mysql给一个表添加外键约束_Mysql添加外键约束
简单说一下使用外键的好处 1.完整性约束 比如: 用户表中有字段 用户编号(id) , 名称(username) 设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户 ...
- mysql给表加外键约束_MySQL为表添加外键约束
为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...
- mysql添加外键约束的语法_Mysql添加外键约束.
最近学习遇到一条添加外键约束的语句,记录下来. alter table selection add constraint FK_Reference_1 foreign key(course) refe ...
- 使用MySQL数据库创建表时添加外键约束
/题目:创建表Book表,字段如下: bid整型,要求主键 bname学符型,要求设置唯一键,并非空 price浮点型,要求有默认值10 btypeId 类型编号,要求引用bookType表的id字段 ...
- MySQL为表添加外键约束
为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...
- MySQL可以生成E-R图嘛_使用Navicat for mysql生成E-R图,添加外键约束
1. E-R图生成 用 mysql的Navicat Premium图形界面工具 . 可以生成E-R图. 把你的数据库选中后右键 , 选择"逆向表到模型" 就可以了 2.添加外键约束 ...
- mysql外键约束分数_MySQL提高(外键约束)
外键约束 1.条件语句的写法 在sql中可以通过'where 条件语句' 来对操作对象进行筛选 -筛选 a.比较运算符:=,<>,,<=,>= 注意:判断一个字段的值是否为空不 ...
最新文章
- C/C++中“#”和“##”的作用和用法
- 美团方法论,苦练基本功
- 《预训练周刊》第21期:FlipDA:有效且稳健的数据增强小样本学习、开放域低资源适应的生成式聊天机器人...
- EXE 文件打不开的处理办法
- 稀疏编码(Sparse Coding)(二)
- PHP面试题:你常用到的mysql命令?
- AgileEAS.NET之ORM访问器
- POJ - 1904 King's Quest(强连通缩点)
- maven本地库已经有的包了,如何不下载(linux环境)
- android cordova 教程,cordova入门教程(一)
- Bluetooth篇 开发实例之六 蓝牙RSSI计算距离
- SQL Server 2005中设置Reporting Services发布web报表的匿名访问
- 多线多IP的服务器配置
- 预训练模型:一种低资源实体NER标注的方法
- 适合python组态软件_组态软件哪个好
- imdisk 想说爱你不容易
- 使用gui来初始化参数matlab,MATLAB GUI参数传递方式
- mysql 免费报表工具_10款最出色的免费数据库管理工具
- hdu 2545 树上战争
- 如何快速三个月成为一个领域的高手的四个方法
热门文章
- Linux(入门基础):04---文件的压缩、解压、打包(gzip、bzip2、xz、tar)
- csdn博客栏目装修大全
- 如何把m4v转换成mp4?
- 宏基计算机设置硬盘启动不了,宏基笔记本设置U盘启动的简单步骤
- CC-IP0101 51410056-175霍尼韦尔接口板
- 计算机组成原理实验 单总线CPU设计(变长指令周期3级时序)(HUST)思路总结
- 【C语言】typedef的用法简析
- 苹果13无线充电宝推荐,最适合苹果13的无线充电宝盘点
- linux中一切都是文件_在Linux中,“一切都是文件”是什么意思?
- 高仿精仿QQ空间ios源码