MYSQL在创建外键约束时出错
我正在使用MySQL创建一个小数据库。以及在外键和主键方面面临的一些问题。我真的不明白,因为这似乎是个简单的问题MYSQL在创建外键约束时出错,mysql,foreign-keys,primary-key,Mysql,Foreign Keys,Primary Key,我正在使用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 , `
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;
它运行成功。但是,在创建另一个表和创建外键时,引用上表的区域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;
这些数据类型彼此不兼容。从表
urban\u area
中创建列area\u id
,也UNSIGNED
`area_id` INT(10) UNSIGNED NOT NULL ,
urban\u area
中创建列area\u id
,也UNSIGNED
`area_id` INT(10) UNSIGNED NOT NULL ,