重新創建在 ALTER 語句期間刪除的表 (errno: -1)?
在過去的 2-3 週內,我第三次在
ALTER
聲明中收到以下資訊:錯誤 2013:在查詢 SQL 語句期間失去與 MySQL 伺服器的連接:
ALTER TABLE
my_database
.my_table
…在這種情況下,我將更
AUTO_INCREMENT
改為 55,就是這樣。這是必要的,因為我們將 JSON 字元串儲存在LONGTEXT
引用數據庫 ID 的欄位中,但是在遷移腳本期間它沒有正確插入所有行,因此 ID 與已經存在的 ID 不匹配。AUTO_INCREMENT
必須僅出於功能目的而進行修復。我使用的 MySQL Workbench 版本是 6.3.3.0 build 592。
嘗試刷新我的模式時,我得到:
錯誤程式碼:2013 查詢期間失去與 MySQL 伺服器的連接
當我嘗試重新創建表時,我收到以下消息:
錯誤程式碼:1005。無法創建表“my_database.my_table”(錯誤號:-1)
似乎
ALTER
在創建新表定義之前刪除了舊表定義。我怎樣才能解決這個問題?
該數據庫在 AWS RDS 上執行,因此除了 Amazon 允許我更改的內容之外,我無法更改任何內容。我不能再在我的模式中按名稱重新創建前三個表中的任何一個,但只能用於 InnoDB。如果我嘗試在 MyISAM 中創建此表,它會起作用。
我將 Propel 用於遷移腳本,因此我確實通過抑制XML 表標籤的*autoIncrement欄位來明確指定**id列。*我不想轉儲我的表並重新執行遷移腳本,所以我手動修復了 ID,然後嘗試在這一切發生時將其更改為應有的值。
AUTO_INCREMENT
- 將所有表移動到臨時數據庫
- 刪除原始數據庫(現在它是空的)
- 將表從臨時數據庫移動到原始數據庫。
這應該修復 InnoDB 字典,您將能夠再次創建表。
該聲明:
DROP TABLESPACE `data_feed_param`;
如果我的使用者有權限,現在可以解決我的問題,而不必
RENAME
在 MySQL 5.6 上使用我的表。CREATE TABLESPACE