MySql Ограничение внешнего ключа и переполнение стека

Поэтому у меня возникли проблемы с созданием двух баз данных под названием role_perm а также user_role, Я просто не мог узнать, где проблема, так как она показывает мне:

Ограничение внешнего ключа сформировано неправильно

Для обоих role_perm а также user_roleЕсть пять процедур, которые автоматически создают мои базы данных, эти коды мои коды MySQL …

CREATE TABLE `users` (
ID INT(8) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(45) NOT NULL,
`firstname` VARCHAR(45) NOT NULL,
`lastname` VARCHAR(45) NOT NULL,
`mobile` VARCHAR(45) NOT NULL,
`home` VARCHAR(45) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = InnoDB;

CREATE TABLE `roles` (
`role_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`role_name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`role_id`)
) ENGINE = InnoDB;

CREATE TABLE `permissions` (
`perm_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`perm_desc` VARCHAR(50) NOT NULL,
PRIMARY KEY (`perm_id`)
) ENGINE = InnoDB;

CREATE TABLE `role_perm` (
`role_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`perm_id` INT(8) NOT NULL,
INDEX (`role_id`, `perm_id`),
FOREIGN KEY (role_id) REFERENCES roles(role_id),
FOREIGN KEY (perm_id) REFERENCES permissions(perm_id)
) ENGINE = InnoDB;

CREATE TABLE  `user_role` (
`user_id` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`role_id` INT(8) NOT NULL,
INDEX (`user_id`, `role_id`),
FOREIGN KEY (user_id) REFERENCES users.ID,
FOREIGN KEY (role_id) REFERENCES roles.role_id
) ENGINE = InnoDB;

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …