程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql修改索引時,外鍵約束造成的奇怪問題

mysql修改索引時,外鍵約束造成的奇怪問題

編輯:MySQL綜合教程


mysql修改索引時,外鍵約束造成的奇怪問題   事情是這樣的,在Windows的mysql5.5 ,我想修改一個表的索引,於是執行   www.2cto.com   [sql]  ALTER TABLE practice_log DROP INDEX ix_practice_log_userid;   ALTER TABLE practice_log ADD INDEX ix_practice_log_userid(userid,practicetime);    但是報錯:unable drop index 。。。:  needed in a foreign key constraint   於是,強行把外鍵約束檢查關閉:   [sql]  SET FOREIGN_KEY_CHECKS=0;      ALTER TABLE practice_log DROP INDEX ix_practice_log_userid;   ALTER TABLE practice_log ADD INDEX ix_practice_log_userid(userid,practicetime)   SET FOREIGN_KEY_CHECKS=1;     索引修改成功。   www.2cto.com   但是,問題來了。。。。。   重啟數據庫後,表 practice_log 不見了! 刪除表practice_log,報錯:表不存在; 建表,報錯:表已存在!   這應該是mysql的bug。   解決辦法:不要用SET FOREIGN_KEY_CHECKS=0;老老實實得刪掉外鍵約束吧,再修改索引,搞定。   另外,約束影響性能,盡量不要用。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved