好吧,这真的让我很困惑。
我在 Mac OS X (Lion) 上使用 MySQL 5.5.20。有人给了我一个 .MDB 数据库来处理,所以我把它带进了 MySQL。最初没有问题。
然后我正在清理数据库/表/字段。我希望所有表都有一个 ID 字段。在某些情况下,它们存在,但我希望它们被称为 ID。在其他情况下,没有这样的字段,所以我创建了一个。
有一个名为 CityList 的表。我将其重命名为城市。我将主键字段从 CityList 重命名为 ID。
还有一张叫做场地的桌子。它具有三个字段 VenuesID、VenueName 和 CityList。我将 CityList 字段重命名为 CityID。
然后,我尝试将 VenuesID 重命名为 ID。它失败,错误号:150。我尝试使用 Sequel Pro,我尝试使用命令行。没有什么。
我尝试将 Venues 表重命名为其他名称。结果相同:150。
删除后我尝试重新创建数据库。结果相同:150。
通过调用 Venues 表“Boxes”,我能够准确地导入结构和数据。这不是一个问题的耳语。
所以,我想我会很聪明。我将完整的结构和数据导出到 SQL 语句中,包括创建 Boxes 表和 INSERTed INTO Boxes 的最后一个表。我编辑了文件以将所有“Boxes”更改为“Venues”并重新创建数据库。
它有效,但是....我将“Venues”错误地输入为“Venes”。所以完整的数据库结构和所有数据都在那里。只是表的名称是错误的。
我无法将其重命名为场地。
我已经销毁并重试了大约一个小时。这没有道理。感觉就像在 MySQL 中的某个地方仍有一些记录,即 Venues 表 1) 仍然存在并且 2) 无法更改。
有什么建议吗?
PS我要创建的代码是:
CREATE TABLE `Locations` (
`VenuesID` int(11) NOT NULL,
`CityID` int(11) DEFAULT NULL,
`VenueName` varchar(50) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (`VenuesID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
不,没有外键约束。