我們以前在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