doujumiao5024 2015-03-14 13:46
浏览 51

MySql外键约束和PHP

So I'm having trouble creating two databases called role_perm and user_role. I just couldn't find out where the problem is, since it shows me:

Foreign key constraint is incorrectly formed

For both role_perm and user_role, there are five procedures that automatically creates my DBs, these codes are my MySQL codes...

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;
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示
    • ¥15 求三国群英传pl国战时间的修改方法
    • ¥15 matlab代码代写,需写出详细代码,代价私
    • ¥15 ROS系统搭建请教(跨境电商用途)
    • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。