私はテーブルfooとbarを持っています:
create table foo(a int, b varchar(10),
primary key (a));
create table bar(a int, c int, d int,
primary key (a,c),
foreign key(a) references foo(a));
e
これで、barの主キーに参加する必要がある新しい列ができました。これどうやってするの?主キーを削除し、列を追加して、新しい主キーを作成できるはずですが、主キーを削除しようとすると、次のようになります。
mysql> alter table bar drop primary key;
ERROR 1025 (HY000): Error on rename of './mydb/#sql-1e08_16a273' to './mydb/bar' (errno: 150)
これは、外部キー列を含む主キーの場合にのみ当てはまるようです。