mql建表 外键
环境:Toad for mysql
建表错误信息:
Database Error: Can't create table 'sc17_trunk.tbl_pc_remote_svc' (errno: 150)
分析原因 :
1.外键和被引用外键类型不一样,比如integer和double
2.找不到要被引用的列 (这种情况)
3.表的字符编码不一样
注:联合主键做外键的时候要一起使用
例如:foreign key(c2,c3) references parent(c1,c2));
正确的建表语句:
CREATE TABLE `tbl_pc_remote_svc` ( `remote_svc_id` int(11) NOT NULL AUTO_INCREMENT, `data_svc_id` varchar(64) NOT NULL, `edx_service_id` varchar(64) NOT NULL, `created_dt` datetime DEFAULT NULL, `created_by` varchar(32) DEFAULT NULL, `updated_dt` datetime DEFAULT NULL, `updated_by` varchar(32) DEFAULT NULL, `dpl_version` int(11) DEFAULT NULL, PRIMARY KEY (`remote_svc_id`), KEY `tbl_pc_remote_svc_fk1` (`data_svc_id`), KEY `tbl_pc_remote_svc_fk2` (`edx_service_id`), CONSTRAINT `tbl_pc_remote_svc_fk1` FOREIGN KEY (`data_svc_id`) REFERENCES `TBL_PC_DATA_SVC` (`data_svc_id`), CONSTRAINT `tbl_pc_remote_svc_fk2` FOREIGN KEY (`edx_service_id`) REFERENCES `TBL_PC_EDX_SERVICE` (`service_id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;