Mysql
mysql - 在 mysql 5.7.4 中刪除了 ALTER IGNORE ADD INDEX - 改用什麼?
我正在嘗試向表中添加索引,但前提是該索引不存在。我不知道索引名稱是什麼。在mysql手冊中我找到了
alter ignore
命令:ALTER [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...] [partition_options] alter_specification: table_options ... | ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
因此,我嘗試執行以下操作:
ALTER IGNORE TABLE payments ADD INDEX (id_project);
但是,這失敗了,並出現以下錯誤:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IGNORE TABLE payments ADD INDEX (id_project)'
事實證明,從 mysql 5.7.4 開始,這已被刪除。
在較新版本的mysql中執行此操作的好方法是什麼?
供參考…
更新日誌 2014-03-27 5.6.17 – 添加或更改功能 –
ALTER TABLE ( http://dev.mysql.com/doc/refman/5.6/en/alter-table.html ) 的 IGNORE 子句現已棄用,並將在 MySQL 的未來版本中刪除。ALTER IGNORE TABLE 導致複製問題,阻止線上 ALTER TABLE 創建唯一索引,並導致外鍵問題(在父表中刪除的行)。
這可能會有所幫助:
- 重命名現有表並創建一個新表。
- 使用 insert ignore 將數據從舊表複製到新表。