我在MySQL中创建了以下三个表的基本模式,其中一个表有两个外键(documentreference表):
-- Dumping database structure
CREATE DATABASE IF NOT EXISTS `zeus`;
USE `zeus`;
-- ****** FHIR RESOURCES ******
CREATE TABLE IF NOT EXISTS `patients`
(
`Id` int(5) NOT NULL AUTO_INCREMENT,
`Active` bool,
`Name` JSON, -- JSON blob array of HumanName DataTypes
`Telecom` JSON, -- JSON blob array of ContactPoint DataTypes
`Gender` varchar(10),
`BirthDate` datetime,
`DeceasedBoolean` bool,
`DeceasedDateTime` datetime,
`Address` JSON, -- JSON array of Address DataTypes
`MaritalStatus` JSON, -- JSON blob single CodeableConcept DataType
`MultipleBirthBoolean` bool,
`MultipleBirthInteger` int(5),
`Communication` JSON, -- JSON array of languages & preferred bool i.e "[language: CodeableConcept(English), preferred: true, ...]"
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `documentreferences`
(
`Id` int(5) NOT NULL AUTO_INCREMENT,
`Status` varchar(50),
`DocStatus` varchar(50),
`Type` JSON, -- single CodeableConcept DataType
`Class` JSON, -- single CodeableConcept DataType
`Created` datetime,
`Indexed` datetime,
`Description` varchar(50),
`SecurityLabel` JSON, -- array of CodeableConcept DataTypes
`ContextEvent` JSON, -- array of CodeableConcept DataTypes
`ContextPeriodStart` datetime,
`ContextPeriodEnd` datetime,
`ContextFacilityType` JSON, -- single CodeableConcept DataType
`ContextPracticeSetting` JSON, -- single CodeableConcept DataType
PRIMARY KEY (`id`),
`SubjectId` int(5),
INDEX subject_ind (SubjectId),
FOREIGN KEY (SubjectId)
REFERENCES patients(Id)
ON DELETE CASCADE,
-- ** FK below causes issue **
`PractitionerId` int(5),
INDEX practitioner_ind (PractitionerId),
FOREIGN KEY (PractitionerId)
REFERENCES practitioners(Id)
ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `practitioners`
(
`Id` int(5) NOT NULL AUTO_INCREMENT,
`Active` bool,
`Name` JSON, -- JSON blob array of HumanName DataTypes
`Telecom` JSON, -- JSON array of ContactPoint DataTypes
`Address` JSON, -- JSON array of Address DataTypes
`Gender` varchar(10),
`BirthDate` datetime,
`Qualification` JSON,
`Communication` JSON, -- JSON array of CodeableConcept DataTypes
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
但是,我在运行时遇到以下错误:
错误1215:无法添加外键约束
SQL语句:
如果不存在,则创建表documentreferences
(Id
int(5)非空自动增量,Status
varchar(50),DocStatus
varchar(50),Type
JSON,--single codableconcept数据类型Class
JSON,--创建的单个CodeableConcept数据类型日期时间,
索引的日期时间,
描述
varchar(50),安全标签
JSON,--CodeableConcept数据类型数组上下文事件
JSON,--CodeableConcept数据类型数组上下文周期开始
日期时间,上下文周期结束
日期时间,ContextFacilityType
JSON,--single CodeableConcept数据类型ContextPracticesSetting
JSON,--single CodeableConcept数据类型
主键(id
),SubjectId
int(5),
索引主题(SubjectId),
外键(SubjectId)
在删除级联中引用患者(id)
,
--**FK导致问题**PracticeErid
int(5),
索引从业者(PracticeErid),
外键(PracticeErid)
在删除级联时引用从业者(Id)
)引擎=InnoDB自动增量=10默认字符集=latin1
删除表上的FK时,架构将运行。我当前的模式有什么问题会导致错误?任何洞察都将不胜感激
SQL喜欢让事情井然有序。在使用外键关系链接表之前,需要声明所有表。只需将Practices表的创建移到documentreferences表的上方,就可以了。
问题内容: 本质上,我和这个家伙有同样的问题,要减去表前缀。因为我没有表前缀,所以他的修复不起作用。http://forums.laravel.com/viewtopic.php?id=972 我正在尝试使用Laravel的Schema Builder来构建表,如下所示: 问题是,当我运行此代码(在/ setup路由中)时,出现以下错误: 基于网络上的帖子以及有关如何 设置 Laravel口才关系
我想添加两个表,一个产品表和一个类别表。然后我要将产品表中的一个类别id链接到类别表中的主键。下面是我的代码: SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter table添加约束外键()引用())
我试图在MySQL中创建一个有两个外键的表,这两个外键引用了其他两个表中的主键,但我得到一个errno:150错误,它将无法创建该表。 下面是所有3个表的SQL: 如有任何帮助,将不胜感激。
这是我的sql文件,我得到错误后,我运行sql文件
问题内容: 因此,当我想添加外键时出现错误。我在带有EER图模型的MySQL Workbench中添加了外键。工作台尝试添加的行是: 我得到的错误是: 我搜索了解决方案,发现括号很重要或反引号,但是由于代码是由该工具创建的,因此对我来说似乎是正确的。是什么导致错误? 问题答案: 对于任何看此的人,都可以在EER图模型窗口中设置要用于生成SQL脚本的MySQL版本。转到“编辑”,“首选项”,然后是“
问题内容: 我有两个表,是一列父表,并与一列(而不是实际的名称),当我把一个FK上,以在我得到的错误。如果要删除记录,我想删除表2记录。谢谢你的帮助 让我知道是否需要其他信息。我是mysql新手 问题答案: 我在HeidiSQL中遇到了同样的问题。您收到的错误非常神秘。我的问题最终是外键列和引用列的类型或长度不同。 外键列为,引用列为。一旦将它们设置为完全相同的类型,外键创建就可以完美地工作了。