0
나는 3 개의 테이블 : company
, case
및 report
을 가지고 있습니다.화합물 외래 키 INSERT
기업 :
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
를 사용테이블 : 내가 상상으로
그래서 외부 키가 작동된다. 내가 2 열로 구성된 화합물 외래 키를 사용하는 report
테이블에 행을 삽입하려고 할 때, 그것은 다음과 같습니다
는 왜입니까? 내게는 두 테이블간에 연결이 이루어지지 않은 것 같고 case_company_name
과 case_id
은 그냥 일반적인 열일뿐입니다.