Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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_Phpmyadmin_Foreign Keys - Fatal编程技术网

Mysql 复合外键插入

Mysql 复合外键插入,mysql,phpmyadmin,foreign-keys,Mysql,Phpmyadmin,Foreign Keys,我有三个表格:公司,案例和报告 公司: CREATE TABLE IF NOT EXISTS `db`.`company` ( `name` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, PRIMARY KEY (`name`)) ENGINE = InnoDB; CREATE TABLE IF NOT EXISTS `db`.`case` ( `id` VARCHAR(50) NOT NULL, `image

我有三个表格:
公司
案例
报告

公司:

CREATE TABLE IF NOT EXISTS `db`.`company` (
  `name` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`name`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`case` (
  `id` VARCHAR(50) NOT NULL,
  `image` VARCHAR(255) NULL,
  `title` VARCHAR(100) NULL,
  `description` VARCHAR(255) NULL,
  `address` VARCHAR(255) NULL,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `company_name` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`company_name`, `id`),
  CONSTRAINT `fk_case_company`
    FOREIGN KEY (`company_name`)
    REFERENCES `db`.`company` (`name`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`report` (
  `type` VARCHAR(50) NULL,
  `image` VARCHAR(255) NULL,
  `description` VARCHAR(255) NULL,
  `approval` BINARY NULL DEFAULT 0,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `id` INT NOT NULL AUTO_INCREMENT,
  `case_company_name` VARCHAR(50) NOT NULL,
  `case_id` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`, `case_company_name`, `case_id`),
  INDEX `fk_report_case1_idx` (`case_company_name` ASC, `case_id` ASC),
  CONSTRAINT `fk_report_case1`
    FOREIGN KEY (`case_company_name` , `case_id`)
    REFERENCES `db`.`case` (`company_name` , `id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
案例:

CREATE TABLE IF NOT EXISTS `db`.`company` (
  `name` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`name`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`case` (
  `id` VARCHAR(50) NOT NULL,
  `image` VARCHAR(255) NULL,
  `title` VARCHAR(100) NULL,
  `description` VARCHAR(255) NULL,
  `address` VARCHAR(255) NULL,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `company_name` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`company_name`, `id`),
  CONSTRAINT `fk_case_company`
    FOREIGN KEY (`company_name`)
    REFERENCES `db`.`company` (`name`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`report` (
  `type` VARCHAR(50) NULL,
  `image` VARCHAR(255) NULL,
  `description` VARCHAR(255) NULL,
  `approval` BINARY NULL DEFAULT 0,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `id` INT NOT NULL AUTO_INCREMENT,
  `case_company_name` VARCHAR(50) NOT NULL,
  `case_id` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`, `case_company_name`, `case_id`),
  INDEX `fk_report_case1_idx` (`case_company_name` ASC, `case_id` ASC),
  CONSTRAINT `fk_report_case1`
    FOREIGN KEY (`case_company_name` , `case_id`)
    REFERENCES `db`.`case` (`company_name` , `id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
报告:

CREATE TABLE IF NOT EXISTS `db`.`company` (
  `name` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`name`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`case` (
  `id` VARCHAR(50) NOT NULL,
  `image` VARCHAR(255) NULL,
  `title` VARCHAR(100) NULL,
  `description` VARCHAR(255) NULL,
  `address` VARCHAR(255) NULL,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `company_name` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`company_name`, `id`),
  CONSTRAINT `fk_case_company`
    FOREIGN KEY (`company_name`)
    REFERENCES `db`.`company` (`name`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `db`.`report` (
  `type` VARCHAR(50) NULL,
  `image` VARCHAR(255) NULL,
  `description` VARCHAR(255) NULL,
  `approval` BINARY NULL DEFAULT 0,
  `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `id` INT NOT NULL AUTO_INCREMENT,
  `case_company_name` VARCHAR(50) NOT NULL,
  `case_id` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`, `case_company_name`, `case_id`),
  INDEX `fk_report_case1_idx` (`case_company_name` ASC, `case_id` ASC),
  CONSTRAINT `fk_report_case1`
    FOREIGN KEY (`case_company_name` , `case_id`)
    REFERENCES `db`.`case` (`company_name` , `id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
当我使用
phpMyAdmin
将一行插入
case
表时:

所以外键就像我想象的那样工作。但是,当我尝试在
报告
表中插入一行时,它使用了一个由两列组成的复合外键,它看起来如下所示:


为什么会这样?在我看来,这两个表之间似乎没有建立连接,
case\u company\u name
case\u id
只是常规列。

很可能这只意味着phpmyadmin不能以这种方式处理复合引用。 您可以使用
SHOW CREATE TABLE report