0

私はテーブル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)

これは、外部キー列を含む主キーの場合にのみ当てはまるようです。

4

2 に答える 2

1

この他のstackoverflowの質問はあなたを助けるかもしれません。

私の推測では、最初に外部キーをドロップしてから、プライマリをドロップする必要があります。

于 2010-01-05T20:57:56.520 に答える