1

テーブルの主キーを変更したいのですが、最初はidでしたが、今はuseridに変更したいです

   smsusers(id,fname,lname,userid)

ここで id は varchar 型で、userid は int 型です

このために、次のクエリを試しています

 ALTER TABLE smsusers DROP PRIMARY KEY

このエラーが表示されている

#1025 - Error on rename of '.\xrcwrn_sms\#sql-ae0_6f' to 
'.\xrcwrn_sms\smsusers' (errno: 150)

idofsmsusersは外部キーとして多くのテーブルに関連付けられています。

主キーを変更する方法。

4

4 に答える 4

6

次に例を示します。

ALTER TABLE `database`.`table`   
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`userid`);
于 2013-05-30T12:48:06.407 に答える
1

このメッセージは、主キーが 1 つ以上の外部キーによって参照されているため、まだ削除できないことを示しています。最初に外部キーを識別して削除してから、主キーを削除する必要があります。

于 2013-05-30T12:45:32.893 に答える
1

ERROR NO:150 は外部キー定義の問題を意味します。この PK に応じて、他のテーブルに外部キー制約があると思われるため、最初にそれを削除し、後で再構築する必要があります。

于 2013-05-30T12:47:18.523 に答える