我们以前在MySQL中有一个数据库。其中,我们有一张名为trace
的表格。我们早已放弃了整个数据库并创建了另一个具有相同名称的数据库。现在,我们尝试从备份脚本重新创建表trace
,我们得到table already exists
。即使新数据库中显然没有表格。如果我尝试创建一个之前存在的表,我会得到该错误。如果我创建一个从不存在的随机表,那就没问题。为什么我不能在MySQL中创建表?
这里是我用来创建表的代码:
DROP TABLE IF EXISTS `Trace`;
CREATE TABLE `Trace` (
`TraceKey` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Trace Key',
`TableName` varchar(100) NOT NULL DEFAULT '' COMMENT 'Table Name',
`RecordKey` int(10) NOT NULL,
`Action` varchar(100) NOT NULL DEFAULT '',
`ActionTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Time Stamp',
`UserName` varchar(100) NOT NULL DEFAULT '' COMMENT 'UserName',
PRIMARY KEY (`TraceKey`)
) ENGINE=InnoDB AUTO_INCREMENT=6735 DEFAULT CHARSET=latin1;
错误:
Table 'trace' already exists
我们的确有大约20桌(跟踪是许多之一),并有大量的外键如果有帮助。但是我们显然放弃了数据库并重新创建了它。
UPDATE
为了测试,我想这和它的作品
CREATE TABLE trace (id INT,data VARCHAR(100));
然而,再次下探该表,并试图像这样经过:
CREATE TABLE Trace (id INT,data VARCHAR(100));
一点也没有” t工作,我得到了trace already exists
错误。
区别在于大写与小写?
更新2
这绝对是一个大写小写VS问题。即使使用旧脚本,将表名从Trace
更改为trace
也能正常工作。
关于这是为什么的任何想法?
“SHOW TABLES”显示什么?它的输出中是否存在表“trace”? – 2012-01-27 14:38:29
'SHOW TABLES'出现空白。 – cbmeeks 2012-01-27 14:39:26
这与编程无关,也就是说你的sql是正确的,而不是问题,我会建议在服务器故障或数据库管理员询问这个问题 – 2012-01-27 14:49:10