首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在另一台服务器上导入我的数据库吗?

问可以在另一台服务器上导入我的数据库吗?
EN

Stack Overflow用户
提问于 2016-03-07 16:09:25
回答 1查看 41关注 0票数 0

我正在处理一个放在在线服务器(Linux)上的数据库。我不得不对这个数据库做很大的更改,所以我将这个数据库(导出然后导入)移动到我创建的本地数据库(Windows )。

在最后几天在本地数据库上工作之后,我决定工作已经完成,所以我导出了本地数据库并将其导入到活动数据库,但我做不到。它给了我与外键相关的错误:

#1215 -无法添加外键约束

表phpmyadmin说,有一些错误的是printprices,这些是我为printprices创建的表,以及可能与错误有某种关系的其他表:

代码语言:javascript
复制
CREATE TABLE `printprices` (
  `STYLE` int(11) NOT NULL DEFAULT '0',
  `DIFICULTAD` int(11) NOT NULL DEFAULT '0',
  `NCOLORES` int(11) NOT NULL DEFAULT '0',
  `PROVEEDOR` int(11) NOT NULL DEFAULT '0',
  `SIZECM2MAX` int(11) NOT NULL DEFAULT '0',
  `MINQ` int(11) NOT NULL,
  `MAXQ` int(11) NOT NULL,
  `PRECIO` decimal(5,2) DEFAULT '0.00',
  `PRECIOPRV` decimal(5,2) DEFAULT '0.00',
  `MINWORK` decimal(5,2) DEFAULT '0.00',
  `MINWORKPRV` decimal(5,2) DEFAULT '0.00',
  PRIMARY KEY (`STYLE`,`DIFICULTAD`,`NCOLORES`,`PROVEEDOR`,`SIZECM2MAX`,`MINQ`),
  KEY `FK_PRINT` (`STYLE`,`DIFICULTAD`,`NCOLORES`,`PROVEEDOR`),
  CONSTRAINT `FK_PRINT` FOREIGN KEY (`STYLE`, `DIFICULTAD`, `NCOLORES`, `PROVEEDOR`) REFERENCES `print` (`STYLE`, `DIFICULTAD`, `NCOLORES`, `PROVEEDOR`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 


CREATE TABLE `print` (
  `STYLE` int(11) NOT NULL DEFAULT '0',
  `DIFICULTAD` int(11) NOT NULL DEFAULT '0',
  `NCOLORES` int(11) NOT NULL DEFAULT '0',
  `PROVEEDOR` int(11) NOT NULL DEFAULT '0',
  `CFC` decimal(5,2) DEFAULT '0.00',
  PRIMARY KEY (`STYLE`,`DIFICULTAD`,`NCOLORES`,`PROVEEDOR`),
  KEY `FK_PRINTPROV` (`PROVEEDOR`),
  KEY `FK_PRINTSTYLE` (`STYLE`),
  CONSTRAINT `FK_PRINTPROV` FOREIGN KEY (`PROVEEDOR`) REFERENCES `proveedores` (`CODIPRV`) ON DELETE CASCADE,
  CONSTRAINT `FK_PRINTSTYLE` FOREIGN KEY (`STYLE`) REFERENCES `printstyle` (`CODISTY`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 


CREATE TABLE `printstyle` (
  `CODISTY` int(11) NOT NULL AUTO_INCREMENT,
  `STYLE` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`CODISTY`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1


CREATE TABLE `proveedores` (
  `CODIPRV` int(11) NOT NULL AUTO_INCREMENT,
  `PROVEEDOR` varchar(20) DEFAULT NULL,
  `ENVIOPRICE` decimal(4,2) NOT NULL DEFAULT '0.00',
  `CARTONPRICE` decimal(4,2) NOT NULL DEFAULT '0.00',
  `LIMITPRICE` decimal(6,2) NOT NULL,
  PRIMARY KEY (`CODIPRV`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 07:28:34

我终于找到了它不起作用的原因:

问题是,我试图将我的数据库上传到一个由Linux托管的Mysql上,这是区分大小写的。我的foreign keys存储在大写字母上,但我的桌子却没有。

当Linux的Mysql读取文件并试图在创建表之前删除表时,该表不会被删除,因为该表的名称与之前已经存储在大写中的名称不完全相同。

解决方案是编辑导出文件,并将所有表名从小写改为大写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35848509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档