2015-05-11 137 views
1

我在mysql中的一個問題,我嘗試運行這句話創建表,如果不存在返回「表doesn't存在」

CREATE TABLE IF NOT EXISTS comunidad_estado (
    id_comunidad_estado int(11) NOT NULL, 
    nombre varchar(50) NOT NULL, 
    id_pais int(11) NOT NULL 
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=latin1; 

和返回是這樣的:

https://imageshack.com/i/pdR670xhp

我知道我的數據庫是空的,但是我不能明白爲什麼沒有創建表

https://imageshack.com/i/idnYVanJp

在此先感謝。

+0

我想這個說法在MySQL 5.6和它的工作,進一步可以參考http://stackoverflow.com/questions/8142002/table-doesnt-exist-after-create-表格 – Anil

+0

你確定它沒有運行,因爲它在我身邊正常工作。 –

+0

@AnilKumar哇,我之前搜索過,沒有發現任何東西,但順便說一下,它是解決方案,我剛剛創建了其他名稱的表,然後重命名它,它的工作。謝謝 –

回答

0

看來,模式/數據庫已損壞/鎖定。

可能的解決方案:

  • 重啓MySQL服務,然後再試一次(有時鎖適用於架構,並以某種方式不解鎖)
  • 放棄這一模式,創建新模式,然後再試一次(有時,上創建模式 - 它被損壞)
  • 修復mysql(mysqlcheck --repair) - 修復損壞的模式。
  • 最後,檢查權限。

要確認您的腳本,請嘗試@http://sqlfiddle.com/。如果它可行,那麼在您的模式/數據庫的可能原因上面。

0

如果有人有同樣的錯誤,我通過更改查詢的名稱,然後重新命名de db來解決它,一個非常奇怪的工作,但它的工作。 感謝阿尼爾爲參考: Table doesn't exist after CREATE TABLE