【发布时间】:2023-12-26 05:38:02
【问题描述】:
我正在尝试在“Rol”和“Permisos”之间创建多对多关系,这是我的代码
表'角色':
CREATE TABLE IF NOT EXISTS `tienda_v1`.`rol` (
`idrol` INT NOT NULL AUTO_INCREMENT,
`nombre_rol` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idrol`))
ENGINE = InnoDB;
表'Permiso':
CREATE TABLE IF NOT EXISTS `tienda_v1`.`permiso` (
`idpermiso` INT NOT NULL AUTO_INCREMENT,
`nombre_permiso` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idpermiso`))
ENGINE = InnoDB;
这是我正在尝试的:
CREATE TABLE `tienda_v1`.`rol_permiso`(
`rol_id` INT NOT NULL,
`permiso_id` INT NOT NULL,
PRIMARY KEY(`rol_id`,`permiso_id`),
CONSTRAINT `rol_permiso_rol`
FOREIGN KEY `rol_table_fk` (`rol_id`) REFERENCES `rol` (`idrol`)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `rol_permiso_permiso`
FOREIGN KEY `permiso_table` (`permiso_id`) REFERENCES `permiso` (`idpermiso`)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE = InnoDB;
然后抛出这个输出:
17:25:39 创建表
tienda_v1.rol_permiso(rol_idINT NOT NULL,permiso_idINT NOT NULL,PRIMARY KEY(rol_id,permiso_id), 约束rol_permiso_rol
外键rol_table_fk(rol_id) 参考rol(idrol)
ON DELETE CASCADE ON UPDATE CASCADE, 约束rol_permiso_permiso外键permiso_table(permiso_id) 参考permiso(idpermiso)在更新级联时删除级联)引擎= InnoDB 错误代码:3780。引用列 'rol_id' 并引用 外键约束“rol_permiso_rol”中的“idrol”列是 不相容。 0.000 秒
有人知道发生了什么吗?请帮忙
【问题讨论】:
标签: mysql database many-to-many mysql-workbench relationship