我有一个由两列组成的多对多表user_processes
:user
和process
. user
是引用用户表主键的外键。该process
列是引用进程主键的外键。但是,我不需要单独的主键列,因为 , 上的user_processes
多列主键应该足够了(对吗?我没有看到需要单独的列)。一个用户可以有多个进程,但同一用户不应有多个行具有相同的进程。user
process
id
以下代码在 phpmyadmin 中给了我错误“#1005 - Can't create table 'test.user_processes' (errno: 150) (Details...)”。
这是由mysql工作台生成的代码:
-- -----------------------------------------------------
-- Table `test`.`user_processes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`user_processes` (
`user` INT UNSIGNED NOT NULL ,
`process` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`user`, `process`) ,
INDEX `fk_user_processes_users1_idx` (`user` ASC) ,
INDEX `fk_user_processes_processes1_idx` (`process` ASC) ,
CONSTRAINT `fk_user_processes_users1`
FOREIGN KEY (`user` )
REFERENCES `test`.`users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_processes_processes1`
FOREIGN KEY (`process` )
REFERENCES `test`.`processes` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
知道为什么它不让我这样做,以及正确的解决方案是什么?