2013-04-22 3 views
1

작은 데이터베이스를 만들기 위해 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; 
+0

난 당신이 다른 데이터베이스에 대한 외래 키 참조를 만들 수 있다고 생각하지 않습니다. –

+0

동일한 데이터베이스 'db_trimms' –

답변

1

데이터 유형이 호환되지 않는 쿼리를하다 서로 서로 함께. 표 urban_areaarea_id 열을 UNSIGNED으로 만드십시오.

`area_id` INT(10) UNSIGNED NOT NULL , 

+0

완벽하게 작동 ... .... 덕분에 .... :) –

+0

당신은 'D' –

관련 문제