最近遇到了一個問題,就是在mysql數(shù)據(jù)庫中修改了字段長度,但是實際使用時發(fā)現(xiàn)修改并未生效,記錄一下解決過程。
首先,可以使用以下語句查看表的結(jié)構(gòu):
SHOW CREATE TABLE `表名`;
通過查看表的結(jié)構(gòu),可以發(fā)現(xiàn)修改字段長度的語句沒有生效。
于是我們考慮重新執(zhí)行修改字段長度的語句,但是可能會遇到以下錯誤:
ERROR 1832 (HY000): Failed to add the foreign key constraint. Missing index for constraint '表名_ibfk_1' in the referenced table '參照表名'
這是因為在修改字段長度時,涉及到了外鍵約束。解決方法是先刪除外鍵約束,執(zhí)行以下語句:
ALTER TABLE `表名` DROP FOREIGN KEY `外鍵約束名`;
然后再執(zhí)行修改字段長度的語句。修改完成后,需要重新添加外鍵約束:
ALTER TABLE `表名` ADD CONSTRAINT `外鍵約束名` FOREIGN KEY (`字段名`) REFERENCES `參照表名`(`字段名`);
最后,再次查看表的結(jié)構(gòu),可以發(fā)現(xiàn)修改字段長度生效了。