問題タブ [multi-table-delete]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
177 参照

sql - 相互に参照されているテーブルから行を削除するには?

私はこれをしたい:

しかし、それは私にエラーを与えます。

0 投票する
3 に答える
1053 参照

mysql - 1 つの SQL ステートメントで 2 つのテーブルから行を削除できますか?

「REVIEW」と「REVIEW_DESCRIPTION」という2つのテーブルがあります

両方からすべてのデータを取得するために結合を行う場合:

これに基づいて、この基準に一致する両方のテーブルの行を一度に削除したいのですが、ヒントはありますか?

0 投票する
13 に答える
239206 参照

sql - SQL Server データベースのすべてのデータを削除する

データベースのすべてのテーブルからすべてのレコードを削除するにはどうすればよいですか? 1 つの SQL コマンドで実行できますか、それともテーブルごとに 1 つの SQL コマンドが必要ですか?

0 投票する
4 に答える
11142 参照

mysql - 1回のクエリで複数の削除

Table1から削除WHEREConditionID=?ConditionID;

ConditionIDは、Table1、Table2、Table3に存在する列であり、個別に3回実行するのではなく、1つのクエリ(mysql)で3つすべてを実行する方法はありますか?

0 投票する
1 に答える
5365 参照

sql - table1、table2、table3 から削除する場所は?

削除したいすべてのテーブルに gamer_id 列がある場合

gamer_id = 123 の table1、table2、table3 から削除できますか?

または別の構文がありますか?

0 投票する
1 に答える
763 参照

myisam - MySQL - MyISAM マルチテーブル削除 (ON CASCADE DELETE と同様)

レコードによって参照されているすべてのエントリと、別のテーブル内のすべての子も削除しようとしています。可能であれば、トリガーではなく複数テーブルの削除ステートメントを使用したいと思います。

例えば

したがって、上記のタイプのテーブル構造体が与えられた場合、行 2 を削除すると、formsから行 2,3 が削除form_optionsされ、行 1が削除されform_options_infoます。

0 投票する
1 に答える
1570 参照

sql - マルチテーブルHSQLDBを削除する

マルチテーブルDELETEステートメントはHSQLDBでサポートされていますか?

私はグーグルとフォーラムでいくつかの検索をしましたが、この点を扱っているトピックを見つけることができません。

0 投票する
2 に答える
992 参照

mysql - SQL削除とカスケード

会社の連絡先、連絡担当者、キャンペーン、会社からの提案、寄付を記録する連絡管理システムを作成しています。

1つの会社に多くの連絡担当者を配置し、多くのキャンペーンで多くの提案を提出し、多くのキャンペーンに寄付することができます。会社に連絡担当者がいて、提案を提出し、寄付をする必要はありません。INSERT、UPDATE、およびSELECTを使用してクエリを正常に作成しましたが、DELETEは使用していません。現在、このクエリを使用して、会社とそのすべての関連データを削除しています。

このクエリにエラーがあったとしても、会社は削除されないことを私は知っています。より良いオプションとしてDELETECASCADEについて読んだことがありますが、その方法がわかりません。誰かがそれを行う方法について何か考えがあれば、私はそれを本当に感謝します。

0 投票する
1 に答える
1623 参照

mysql - バイナリ ログを有効にしてセーフ モードで複数テーブルの削除を実行するにはどうすればよいですか?

次のデータ構造があるとしましょう。

テーブルBには 3000 を超えるレコードが含まれている可能性があります。約 600 のレコードが、テーブル内の異なる行を参照していますC。私のサーバーでは 2 つの設定が有効になっています。

質問: table を介して table のレコードに参照されている table から、警告を発行せずにすべてのレコードを効率的に削除するにはどうすればよいですか?ACB


私が試したこと:

DBMS サーバーの問題safe_mode:

エラー コード: 1175。セーフ更新モードを使用していて、KEY 列を使用する WHERE なしでテーブルを更新しようとしました。セーフ モードを無効にするには、[設定] -> [SQL クエリ] でオプションを切り替えてから再接続してください。

B.エイリアスを削除しました:

ええ、それは成功しましたが、私はこれを持っています:

影響を受ける 2 行、1 つの警告: 1592 BINLOG_FORMAT = STATEMENT であるため、ステートメント形式を使用して安全でないステートメントがバイナリ ログに書き込まれました。別のテーブルから選択した後に自動インクリメント列を含むテーブルに書き込むステートメントは安全ではありません。これは、行が取得される順序によって、どの行が (存在する場合) 書き込まれるかが決まるためです。この順序は予測できず、マスターとスレーブで異なる場合があります。

また、私は PRIMARY KEY の使用を強制しようとしていました:

しかし、それも役に立ちませんでした。サーバーに対して悪いことや悪いことをしていますか? どのアプローチが正しいですか?何か不足していますか?

前もって感謝します。どんな助けでも大歓迎です。


PS: Google と検索バーの使い方を知っています。これが私が見つけたものです:

  1. https://stackoverflow.com/questions/12275864/multiple-delete-not-working-with-inner-join

  2. http://tech-solutions4u.blogspot.ru/2012/09/mysql-multi-delete-issue-in-safe-mode.html

等々。試してみましたが、最終的には、「しばらくの間...」でもサーバー機能(私が設定したものではありません)を無効にするという考えは好きではありません。


編集:

私は、GROUP_CONCAT(ID_B)一時変数に保存し、その「スカラー」値で削除を実行する回避策があることを知っています:

しかし、それはおおよそ600 * 5 = 3000の文字になるので、この考えも好まれません。つまり、他に何もできない場合は、それが最後のオプションになります。