2011-11-15 95 views
17

我想在我的數據庫名稱的symfony表不存在後CREATE TABLE

CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(255) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

導入這個SQL,我也得到

#1146 - Table 'symfony.ingredient' doesn't exist 

這似乎很奇怪,因爲我試圖在這裏創建這個表,所以...爲什麼它不工作? 如果我嘗試

CREATE TABLE symfony.ingredient 

或者特徵symfony的2

c:\Dev\Symfony>php app/console doctrine:schema:create 

PS我已經得到了同樣的問題:我有這個問題只與XAMPP的新版本。

編輯

嗯,我總算解決了我的問題。 我丟棄了我的數據庫,然後創建了一個(而不是接口),最後我重新啓動了mysql服務。 我不知道爲什麼以及它如何剝奪我,但我希望這會幫助某人。

+1

同意。我不得不放棄數據庫,重新啓動到MySQL服務器,然後重新創建一切,它工作正常。謝謝。 –

回答

0

嗯,你確定你有一個數據庫,並被授予CREATE語句權限。

如果您有phpMyAdmin:

爲了測試第一possibiblity,創建一個新的(空)的測試數據庫,雙擊它,在菜單和 然後按下SQL按鈕,在頂部導航和複製再粘貼聲明。如果這不起作用,請嘗試第二個。

對於第二個你可以點擊'家'按鈕,然後去'特權'。如果只有兩個或三個帳戶,但都具有root權限,則您有權執行CREATE。否則,您可以檢查您的帳戶並給予您特權。

如果兩種可能性都沒有解決,我也不知道。它的工作對我罰款:(

+0

不幸的是,我以root身份登錄,並使用Phpmyadmin測試我的查詢。 真正奇怪的是CREATE TABLE symfony_ingredient實際上在工作,但那不是我想要的。我覺得有些東西與前綴搞砸了。 – Korangar

+0

啊是的,那麼我很害怕我不能幫助你,因爲我不能重現錯誤,也沒有看到任何可能導致錯誤的東西。祝你好運:) – Tessmore

14

我有同樣的問題 我的解決辦法:在創建表的查詢 更改表名,exequte,然後重命名錶

然後,你也可以放棄這一表後,沒有得到錯誤創建

+2

這不適合我。當嘗試將另一個表重命名爲我想要的名稱時,我得到一個表已經存在的錯誤。 – Mike

+0

奇怪,但是這個工作,在創建語句中更改名稱,然後在成功創建表之後將其重命名爲原始名稱所需的名稱。有人能夠點亮這裏發生的一切嗎?在Ubuntu上的文件 –

8

什麼工作對我來說是:

  • 將文件夾XAMPP/MySQL的/數據/數據庫名/
  • 你請僅查看.frm文件。空表缺少文件.MYD.MYI
  • 刪除.frm文件。
  • 停止MySQL進程並重新啓動它。
  • 之後,我能夠創建表。

舊版本的xampp在MyISAM中創建表格,將新版本格式化爲InnoDB!

+0

位於/ var/lib/mysql/[database-name] –

+0

是的!這也適用於我。 請記住它通常要刪除的/xamppfiles/var/mysql//。*文件 – narasi

0

我有同樣的問題:#1146 - 表'tutsplus_ci.posts'不存在。我通過以下步驟解決了此問題:

我在sql文件中導入了導入的表。我注意到.sql文件中的表名具有充足的尾部空間。 我切換回phpmyadmin在我的表的操作部分,我將表格從'posts'重新命名爲'posts'。採取所有這些行動後,錯誤沒有出現。

總之,實際上表'帖子'不存在,因爲錯誤消息說。因爲表格的實際名稱是「帖子」而不是「帖子」。名稱之前的空格很難在phpmyadmin中注意到。這是故事。沒什麼特別的。 我希望它有幫助!

1

我有這個相同的問題。創建表時,我收到了一個「服務器消失」的消息,之後我得到了表不存在的消息,但我無法嘗試重新創建表,因爲那時我收到了一條消息,說它確實是存在。我通過在命令行執行它來解決它:

mysqlcheck --repair --all-databases -u root -p 

它也不會傷害重新啓動mysql服務器之後,以防萬一。

+0

這對InnoDB表不起作用。 – aowie1

+0

@ aowie1實際上,它*可以與InnoDB一起工作,但是我的服務器上發生的任何事情都可能與您的情況不同。甚至[manual](https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html)也會介紹InnoDB表格。 – Mike