1

テーブルを切り捨てるためにあらゆることを試みましたが、常に同じメッセージが表示されます:

Cannot delete or update a parent row: a foreign key constraint fails (`mybdd`.`c_member`, CONSTRAINT `fk_cm_c_id` FOREIGN KEY (`c_id`) REFERENCES `comment` (`c_id`))

このサイトのいくつかの投稿を見て、私はこれを試しました:

ALTER TABLE comment ADD CONSTRAINT c_memberFOREIGN KEY ( c_id) REFERENCES comment( c_id);

しかし、うまくいきません:

テーブル 'mybdd.#sql-2ee0_3769864' を作成できません (errno: 150){"success":false,"error":"

1005 - テーブル 'sameeditrbdd.#sql-2ee0_3769864' を作成できません (errno: 150)</div>"}

どうやってやるの ?

4

3 に答える 3

2

テーブルを削除する前に、すべての外部キー制約とインデックスを含め、テーブルへのすべての参照を削除する必要があります。

外部キー制約により、特定の行を削除できない場合もあります。

または、外部キー チェックを無効にすることもできますが、再度有効にすると、エラーや予期しない動作が発生する可能性があります (データベース内のデータが制約に違反しているため)。

于 2012-12-23T22:13:20.457 に答える
1

以下を使用できます。

SET foreign_key_checks = 0;
DROP <your_table>
SET foreign_key_checks = 1;
于 2012-12-23T22:13:05.167 に答える
0

あなたのテーブルを人質に取っている人やそのプロセスがある可能性が非常に高い!!!

spid # でアドレス指定して、それらを殺そうとする必要があります。

誰がテーブルを人質に取っているかを確認するには、クエリ アナライザを開いて実行します。

execute sp_who2 'active' -- under the database of interest

あとは、殺してもいいのか、ログインした人に電話していいのか、自分で判断してください。

殺すには、ただやる

kill 999 -- your spid # found in that table returned by above command

その後、再度トランケートまたはドロップを試みてください。

幸運!!!

于 2020-08-07T23:27:49.830 に答える