Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法将外键添加到映射表_Mysql_Shopware - Fatal编程技术网

Mysql 无法将外键添加到映射表

Mysql 无法将外键添加到映射表,mysql,shopware,Mysql,Shopware,我无法在映射表中为m:n关系创建外键 我的问题是: 我在一台测试机上使用最新版本的Shopware(Shopware 6),我想开发一个插件来创建一个自定义实体。我的自定义实体(表名:car)的创建过程和带有shopware迁移的表过程工作正常。在下一步中,我创建了一个映射表(名称:car_product),它处理与标准shopware“product”表的m:n关系 此时,我无法添加指向产品的外键。执行过程中没有错误。汽车表的外键工作正常 我想,我的模式不正确,或者product表出现了问题

我无法在映射表中为m:n关系创建外键

我的问题是:

我在一台测试机上使用最新版本的Shopware(Shopware 6),我想开发一个插件来创建一个自定义实体。我的自定义实体(表名:car)的创建过程和带有shopware迁移的表过程工作正常。在下一步中,我创建了一个映射表(名称:car_product),它处理与标准shopware“product”表的m:n关系

此时,我无法添加指向产品的外键。执行过程中没有错误。汽车表的外键工作正常

我想,我的模式不正确,或者product表出现了问题

如果不存在,则创建表(
`id_car`二进制(16)不为空,
`hsn`VARCHAR(3)不为空,
`tsn`VARCHAR(4)不为空,
`制造商'VARCHAR(45)空,
`型号'VARCHAR(45)空,
`年份'INT NULL,
`在`日期时间(3)创建的_不为空,
`更新的_在`日期时间(3)为空,
主键(`id\u car`),
唯一的(`hsn`,`tsn`);
如果不存在汽车产品,则创建表格(
`product_id`二进制(16)不为空,
`产品版本id`二进制(16)不为空,
`id_car`二进制(16)不为空,
主键(`product\U id`、`product\U version\U id`、`id\U car`),
索引'fk_product_car_idx'('id_car'),
索引'fk_product_car_product_idx'('product_id','product_version_id');
创建表格产品(
id二进制(16),
版本号二进制(16),
...
汽车(16),
)
产品表中的id、version\u id属性都是primaray键

添加外键的SQL查询:

Alter Table`car\u product`添加外键(`product\u id`,`product\u version\u id`)在更新级联的删除级联上引用`product`(`id`,`version\u id`);
Alter表`car\u product`添加外键(`id\u car`)在更新级联的删除级联上引用`car`(`id\u car`);

请添加完整的错误消息。没有错误日志。。。mysql服务器返回:0行受影响的记录:0重复:0警告:0查看show create table car_产品并查看是否未添加外来记录。如果出现错误,您将得到一个错误。Show create tables outputs“错误代码:1215.无法添加外键约束”。。那么我的查询中有一个逻辑错误?有可能在创建过程中引用表不“可见”吗?很难猜测您正在做什么,以及按照什么顺序,您是对的您只能为现有表创建外键。因此,在添加外键之前,或者在所有创建表的末尾,必须仔细定义所有表