[英]Cannot create a table in mysql error(150)
我想创建3个表,分别称为curenttasks,originaltasks和previoustasks。 我制作一张桌子,然后复制到另外两张桌子。 但是一个表不能创建,而其他两个表则可以成功创建。
这三个表是:
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;
当前任务无法执行,错误是:
错误1005(HY000):无法创建表'rem.currenttasks'(errno:150)
我只是很困惑,因为我删除了currenttasks并将其复制到以前的任务,用当前替换所有先前的任务,但是它仍然无法工作。
您忘记删除28-31之间的行。 PreviousTasks表尚未创建,但是这些行尝试更改表。 第64-67行也存在同样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.