mysqlで外部キーをつけたカラムの名前変更方法
役に立った:2件
mysqlで外部キーをつけた列の名前を
alter table tablename change oldname newname int;
で変更しようとすると、エラーがでます。
1025の150でrenameのエラーでSHOW INNODB STATUSをみると、indexが無いかデータ型が違うということでした。データ型は確認しています。
indexを名前変更と同時に作ることはできるんでしょうか?change~の後にadd indexではエラーが出ました。
#2回答者です。
制約名(CONSTRAINT [制約名] FOREIGN KEY ~)は、自分で指定しているでしょうか?
もし明示的に指定していないなら、制約名を確認する必要があります。
<制約名を得るSQL例>
select *
from information_schema.table_constraints
where constraint_type like 'for%'
以下のような手順で定義変更を行います。
1.外部制約の削除
alter table 表名
drop foreign key 制約名
2.列名の変更
alter table 表名
change 旧列名 新列名 データ型など
3.外部制約の追加
alter table 表名
add foreign key(外部キーの列名) references 親の表名(主キーの列名)
この回答へのお礼
詳しい回答ありがとうございます。
- 最新から表示
- |
- 回答順に表示











