加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

创建表上的MySql错误

发布时间:2021-05-22 08:56:23 所属栏目:编程 来源:网络整理
导读:我想建设一个表,个中主键引用MySql上其他表的两列 像这样的对象 CREATE TABLE IF NOT EXISTS `tarina`.`Geo_Distrito` ( `departamento` INT(10) NOT NULL,`provincia` INT(10) NOT NULL,`codigo` INT(10) NOT NULL,`nombre` VARCHAR(80) NULL,`estado` INT(

我想建设一个表,个中主键引用MySql上其他表的两列
像这样的对象

CREATE  TABLE IF NOT EXISTS `tarina`.`Geo_Distrito` (
  `departamento` INT(10) NOT NULL,`provincia` INT(10) NOT NULL,`codigo` INT(10) NOT NULL,`nombre` VARCHAR(80) NULL,`estado` INT(10) NULL,PRIMARY KEY (`departamento`,`provincia`,`codigo`),CONSTRAINT `FK_ProvinciaDistrito`  FOREIGN KEY (`departamento`,`provincia` )  REFERENCES `Geo_Provincia` (`departamento`,`codigo` )
)ENGINE = InnoDB;

并获得这个错误:

Can't create table 'tarina.Geo_Distrito' (errno: 150)

谁能汇报我这是什么题目? 最佳谜底 无法建设表.假如错误动静引用错误150,则表建设失败,由于未正确形成外键束缚.假如错误动静引用错误-1,则表建设也许失败,由于该表包括与内部InnoDB表的名称匹配的列名.

这是由于您的列的界说必需沟通.在你的环境下:

列不是统一范例,codigo int(10)unsigned NOT NULL和codigo INT(10)NOT NULL,

另外,您行使的FK provincia也与codigo差异.

这是剧本:

DROP TABLE IF EXISTS `Geo_Distrito`;
DROP TABLE IF EXISTS `Geo_Provincia`;
DROP TABLE IF EXISTS `Geo_Departamento`;

CREATE TABLE `Geo_Departamento` (
`codigo` int(10) unsigned NOT NULL COMMENT 'Codigo autogenerado',`nombre` varchar(80) NOT NULL COMMENT 'Nombre del departamento',`estado` int(10) unsigned NOT NULL COMMENT 'Estado de departamento',PRIMARY KEY (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabla de Departamentos';


CREATE TABLE `Geo_Provincia` (
`codigo` int(10) unsigned NOT NULL COMMENT 'Codigo autogenerado',`departamento` int(10) unsigned NOT NULL,`nombre` varchar(45) NOT NULL,`estado` int(10) unsigned NOT NULL,`codigo`) USING BTREE,CONSTRAINT `FK_ProvinciaDepartamento` FOREIGN KEY (`departamento`) REFERENCES `Geo_Departamento` (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabla de provincias del sistema.';

CREATE  TABLE IF NOT EXISTS `Geo_Distrito` (
`departamento` int(10) unsigned NOT NULL,`provincia` int(10) unsigned NOT NULL,`codigo` int(10) unsigned NOT NULL COMMENT 'Codigo autogenerado',`codigo` )
)ENGINE = InnoDB;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读