无法在mysql错误中创建表(150)

时间:2014-03-23 22:40:42

标签: mysql sql

我想创建3个名为curenttasks,originaltasks和prevoustasks的表。我制作一张桌子并复制到另外两张桌子。但是一个表无法创建,而另外两个表创建成功。

这三个表是:

DROP TABLE IF EXISTS `CurrentTasks`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `CurrentTasks` (
  `taskID` mediumint(9) NOT NULL AUTO_INCREMENT,
  `taskName` varchar(255) NOT NULL,
  `isActive` boolean DEFAULT TRUE,   
  `startDate` datetime NOT NULL,
  `endDate` datetime NOT NULL,
  `completeDate` datetime DEFAULT NULL,
  `complexityID` smallint(6) NOT NULL,
  `managerID` mediumint(9) NOT NULL,
  `projectID` mediumint(9) NOT NULL,
  `requirementName` varchar(255) NOT NULL,
  `xPos` smallint(6) DEFAULT NULL,
  `yPos` smallint(6) DEFAULT NULL,
  `description` text NOT NULL,
  `stageName` enum('Definition','Design','Development','Testing','Evaluation') NOT NULL DEFAULT 'Definition',
  PRIMARY KEY (`taskID`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `CurrentTasks`
--

LOCK TABLES `PreviousTasks` WRITE;
/*!40000 ALTER TABLE `PreviousTasks` DISABLE KEYS */;
/*!40000 ALTER TABLE `PreviousTasks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `PreviousTasks`
--

DROP TABLE IF EXISTS `PreviousTasks`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `PreviousTasks` (
  `taskID` mediumint(9) NOT NULL AUTO_INCREMENT,
  `taskName` varchar(255) NOT NULL,
  `isActive` boolean DEFAULT TRUE,   
  `startDate` datetime NOT NULL,
  `endDate` datetime NOT NULL,
  `completeDate` datetime DEFAULT NULL,
  `complexityID` smallint(6) NOT NULL,
  `managerID` mediumint(9) NOT NULL,
  `projectID` mediumint(9) NOT NULL,
  `requirementName` varchar(255) NOT NULL,
  `xPos` smallint(6) DEFAULT NULL,
  `yPos` smallint(6) DEFAULT NULL,
  `description` text NOT NULL,
  `stageName` enum('Definition','Design','Development','Testing','Evaluation') NOT NULL DEFAULT 'Definition',
  PRIMARY KEY (`taskID`),
  UNIQUE KEY `uniquePreviousTasks` (`requirementName`,`projectID`,`taskName`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `PreviousTasks`
--

LOCK TABLES `PreviousTasks` WRITE;
/*!40000 ALTER TABLE `PreviousTasks` DISABLE KEYS */;
/*!40000 ALTER TABLE `PreviousTasks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `OriginalTasks`
--

DROP TABLE IF EXISTS `OriginalTasks`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `OriginalTasks` (
  `taskID` mediumint(9) NOT NULL AUTO_INCREMENT,
  `taskName` varchar(255) NOT NULL,
  `isActive` boolean DEFAULT TRUE,
  `startDate` datetime NOT NULL,
  `endDate` datetime NOT NULL,
  `completeDate` datetime DEFAULT NULL,
  `complexityID` smallint(6) NOT NULL,
  `managerID` mediumint(9) NOT NULL,
  `projectID` mediumint(9) NOT NULL,
  `requirementName` varchar(255) NOT NULL,
  `xPos` smallint(6) DEFAULT NULL,
  `yPos` smallint(6) DEFAULT NULL,
  `description` text NOT NULL,
  `stageName` enum('Definition','Design','Development','Testing','Evaluation') NOT NULL DEFAULT 'Definition',
  PRIMARY KEY (`taskID`),
  UNIQUE KEY `uniqueOriginalTasks` (`requirementName`,`projectID`,`taskName`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `OriginalTasks`
--

LOCK TABLES `OriginalTasks` WRITE;
/*!40000 ALTER TABLE `OriginalTasks` DISABLE KEYS */;
/*!40000 ALTER TABLE `OriginalTasks` ENABLE KEYS */;
UNLOCK TABLES;

当前任务无法复制,错误是:

  

ERROR 1005(HY000):无法创建表'rem.currenttasks'(错误号:150)

我非常困惑,因为我删除了currenttasks并将prevoustasks复制到它上面,用当前替换每个先前的,但它仍然无法工作。

1 个答案:

答案 0 :(得分:0)

您忘记删除28-31之间的行。尚未创建PreviousTasks表,但这些行尝试更改表。第64-67行也存在同样的事情。