작은 데이터베이스를 만들기 위해 MySQL을 사용하고 있습니다. 외래 키 및 기본 키의 일부 문제에 직면합니다. 나는 그것이 단순한 문제인 것처럼 이해하지 못한다.외래 키 제약 조건 생성시 MYSQL 오류가 발생했습니다.
CREATE TABLE IF NOT EXISTS `db_trimms`.`urban_area` (
`area_id` INT(10) NOT NULL ,
`city` VARCHAR(60) NOT NULL ,
`state` VARCHAR(60) NOT NULL ,
`urban_area` VARCHAR(60) NOT NULL ,
`census_region` VARCHAR(60) NOT NULL ,
`area_no` VARCHAR(60) NOT NULL ,
`freeway_speed` VARCHAR(60) NOT NULL ,
`arterial_speed` VARCHAR(60) NOT NULL ,
PRIMARY KEY (`area_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
성공적으로 실행 중입니다. 그러나 여기에 또 다른 테이블을 만들고 위의 표 ... 그것의 생성 문제의 area_id
를 참조 외래 키를 생성 ...
#1005 - Can't create table 'db_trimms.emiss_others_offpeak' (errno: 150) (Details...)
을하는 동안은
CREATE TABLE IF NOT EXISTS `db_trimms`.`emiss_others_offpeak` (
`area_id` INT(10) UNSIGNED NOT NULL ,
`ammonia` VARCHAR(60) NOT NULL ,
`atm_carbon_dio` VARCHAR(60) NOT NULL ,
`carbon_dio_equiv` VARCHAR(60) NOT NULL ,
`carbon_mono` VARCHAR(60) NOT NULL ,
`methane` VARCHAR(60) NOT NULL ,
`nitrogen_dio` VARCHAR(60) NOT NULL ,
`nitrogen_oxide` VARCHAR(60) NOT NULL ,
`nitrous_oxide` VARCHAR(60) NOT NULL ,
`non_meth_hydrocarbs` VARCHAR(60) NOT NULL ,
`oxides_of_nitrogen` VARCHAR(60) NOT NULL ,
`particulate_matter_pm10` VARCHAR(60) NOT NULL ,
`particulate_matter_pm2_5` VARCHAR(60) NOT NULL ,
`sulfate` VARCHAR(60) NOT NULL ,
` sulfur_dioxide` VARCHAR(60) NOT NULL ,
`total_hydrocarbon` VARCHAR(60) NOT NULL ,
`vol_org_comp` VARCHAR(60) NOT NULL ,
PRIMARY KEY (`area_id`) ,
CONSTRAINT `fk_others_offpeak_urban`
FOREIGN KEY (`area_id`)
REFERENCES `db_trimms`.`urban_area` (`area_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
난 당신이 다른 데이터베이스에 대한 외래 키 참조를 만들 수 있다고 생각하지 않습니다. –
동일한 데이터베이스 'db_trimms' –