0

これは私が実際に助けを必要とするよりもメタ質問ですが、他の場所でそれに関する情報を見つけることができませんでした。今日、データベースから2つのテーブルを削除しようとしましたが、試行すると、「外部キー制約が失敗しました」というエラーメッセージが表示されます。問題ありません。外部キーも削除してください。したがって、私のクエリは次のようになりました。

ALTER TABLE Database.mytable
DROP FOREIGN KEY abc_ibfk_1;
ALTER TABLE Database.mytable
DROP COLUMN abc;

「エラーコード:1025。「。/ Database /#sql-461_somerandomnumbers」の名前を「./Database/mytable」に変更するとエラーが発生します(errno:150)」という別のエラーメッセージが表示されます。

組み込みを使用すると思います。右クリックして、編集テーブルの列をドロップします。これを使用すると、「ドロップインデックス」も使用されていることがわかります。そこで、Workbenchがそれ自体を実行するのとまったく同じようにコードを変更します。

ALTER TABLE Database.mytable
DROP FOREIGN KEY abc_ibfk_1;
ALTER TABLE Database.mytable
DROP COLUMN abc, DROP INDEX abc;

さて、これはWorkbenchが行うのとまったく同じですが、自分で入力した場合は実行されません(エラーメッセージの上)が、Workbenchにクエリの実行を許可した場合は正常に機能します。


だから、私の質問は、コピー/貼り付けができないのに、Workbenchがドロップクエリを実行できるのはなぜですか?

4

1 に答える 1

2

おそらく、手動で実行されたクエリが (誤って) 拡張されている可能性があります。たとえば、自動 LIMIT 句が追加されています。そのクエリを実行した後、出力領域 (Action Output) を確認します。サーバーに送信された正確なクエリが含まれています。珍しいものが含まれていますか?または、管理セクションを使用して一般ログ (有効な場合) を調べ、送信されたクエリを確認します。

于 2013-03-21T07:41:41.523 に答える