请问为什么MySQL导出的sql里的表格先后顺序不受外键限制? 用MySQL5.5导出了一个数据库中的表格,发现生成的sql语句中的表格是按照字母表顺序排列的,请问为什么这些表格不受外键制约呢?换句话说,含有外键的表格怎么可能比主表格先生成呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql只是顺序dump出数据,不关心数据是否以来导入的时候可以先set global foreign_key_checks=off; 多谢楼上的大侠,可是为什么如下sql中,第一段生成Assignment的语句里,用到了后面还未生成的表格Project和Employee呢?连表格都没有生成,又如何可以生成外键呢?可是如下代码却的确可以执行,没有报错,为什么会有这种怪异现象呢?-- MySQL dump 10.13 Distrib 5.5.15, for Win32 (x86)---- Host: localhost Database: pmdata-- -------------------------------------------------------- Server version 5.5.16/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;---- Current Database: `pmdata`--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `pmdata` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `pmdata`;---- Table structure for table `assignment`--DROP TABLE IF EXISTS `assignment`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `assignment` ( `EmployeeID` int(10) unsigned NOT NULL, `ProjectID` int(10) unsigned NOT NULL, `FromDate` date NOT NULL, `ToDate` date DEFAULT NULL, PRIMARY KEY (`EmployeeID`,`ProjectID`), KEY `ProjectID` (`ProjectID`), CONSTRAINT `Assignment_ibfk_1` FOREIGN KEY (`ProjectID`) REFERENCES `project` (`ProjectID`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `Assignment_ibfk_2` FOREIGN KEY (`EmployeeID`) REFERENCES `employee` (`EmployeeID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `assignment`--LOCK TABLES `assignment` WRITE;/*!40000 ALTER TABLE `assignment` DISABLE KEYS */;/*!40000 ALTER TABLE `assignment` ENABLE KEYS */;UNLOCK TABLES;DROP TABLE IF EXISTS `employee`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `employee` ( `EmployeeID` int(10) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(50) NOT NULL, `HireDate` date NOT NULL, `LeaveDate` date DEFAULT NULL, `Position` varchar(50) NOT NULL, `Title` varchar(50) NOT NULL, PRIMARY KEY (`EmployeeID`)) ENGINE=InnoDB AUTO_INCREMENT=500001 DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `employee`--LOCK TABLES `employee` WRITE;/*!40000 ALTER TABLE `employee` DISABLE KEYS */;/*!40000 ALTER TABLE `employee` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `project`--DROP TABLE IF EXISTS `project`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `project` ( `ProjectID` int(10) unsigned NOT NULL AUTO_INCREMENT, `CustomerID` int(10) unsigned NOT NULL, `CustomerContactID` int(10) unsigned NOT NULL, `Name` varchar(50) NOT NULL, PRIMARY KEY (`ProjectID`) USING BTREE, KEY `CustomerID` (`CustomerID`), KEY `Project_ibfk_2` (`CustomerContactID`), CONSTRAINT `Project_ibfk_1` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `Project_ibfk_2` FOREIGN KEY (`CustomerContactID`) REFERENCES `customercontact` (`CustomerContactID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=500001 DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `project`--LOCK TABLES `project` WRITE;/*!40000 ALTER TABLE `project` DISABLE KEYS */;/*!40000 ALTER TABLE `project` ENABLE KEYS */;UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2012-04-13 11:16:10 而且以上脚本中并没有set check off之类的语句,实在是怪异啊,一个还未存在的表格,是怎样能够使用的呢? 有的/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS 求SQL语句 存储过程的设计问题 mysql中如何在自动编号的中间插入数据 count(*)出現錯誤 #1062 - Duplicate entry 'SPP-Online-NE5532AD' for key 1 ? 老问题,求助!!在线等 SQL函数,怎样修改一下 存储过程怎么判断一个表存不存在~ 【在线等】网站数据库同步与镜像问题! mysql4。0 安装问题 pb如何调用mysql函数或存储过程 请教SQL 语句 (多行字段 变成一行显示结果) mysql c-api 连接超时无效
-- MySQL dump 10.13 Distrib 5.5.15, for Win32 (x86)
--
-- Host: localhost Database: pmdata
-- ------------------------------------------------------
-- Server version 5.5.16/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
-- Current Database: `pmdata`
--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `pmdata` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `pmdata`;--
-- Table structure for table `assignment`
--DROP TABLE IF EXISTS `assignment`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `assignment` (
`EmployeeID` int(10) unsigned NOT NULL,
`ProjectID` int(10) unsigned NOT NULL,
`FromDate` date NOT NULL,
`ToDate` date DEFAULT NULL,
PRIMARY KEY (`EmployeeID`,`ProjectID`),
KEY `ProjectID` (`ProjectID`),
CONSTRAINT `Assignment_ibfk_1` FOREIGN KEY (`ProjectID`) REFERENCES `project` (`ProjectID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Assignment_ibfk_2` FOREIGN KEY (`EmployeeID`) REFERENCES `employee` (`EmployeeID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `assignment`
--LOCK TABLES `assignment` WRITE;
/*!40000 ALTER TABLE `assignment` DISABLE KEYS */;
/*!40000 ALTER TABLE `assignment` ENABLE KEYS */;
UNLOCK TABLES;DROP TABLE IF EXISTS `employee`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `employee` (
`EmployeeID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,
`HireDate` date NOT NULL,
`LeaveDate` date DEFAULT NULL,
`Position` varchar(50) NOT NULL,
`Title` varchar(50) NOT NULL,
PRIMARY KEY (`EmployeeID`)
) ENGINE=InnoDB AUTO_INCREMENT=500001 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `employee`
--LOCK TABLES `employee` WRITE;
/*!40000 ALTER TABLE `employee` DISABLE KEYS */;
/*!40000 ALTER TABLE `employee` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `project`
--DROP TABLE IF EXISTS `project`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `project` (
`ProjectID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`CustomerID` int(10) unsigned NOT NULL,
`CustomerContactID` int(10) unsigned NOT NULL,
`Name` varchar(50) NOT NULL,
PRIMARY KEY (`ProjectID`) USING BTREE,
KEY `CustomerID` (`CustomerID`),
KEY `Project_ibfk_2` (`CustomerContactID`),
CONSTRAINT `Project_ibfk_1` FOREIGN KEY (`CustomerID`) REFERENCES `customer` (`CustomerID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Project_ibfk_2` FOREIGN KEY (`CustomerContactID`) REFERENCES `customercontact` (`CustomerContactID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=500001 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `project`
--LOCK TABLES `project` WRITE;
/*!40000 ALTER TABLE `project` DISABLE KEYS */;
/*!40000 ALTER TABLE `project` ENABLE KEYS */;
UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2012-04-13 11:16:10
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS