問題タブ [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.
sql - 相互に参照されているテーブルから行を削除するには?
私はこれをしたい:
しかし、それは私にエラーを与えます。
mysql - 1 つの SQL ステートメントで 2 つのテーブルから行を削除できますか?
「REVIEW」と「REVIEW_DESCRIPTION」という2つのテーブルがあります
両方からすべてのデータを取得するために結合を行う場合:
これに基づいて、この基準に一致する両方のテーブルの行を一度に削除したいのですが、ヒントはありますか?
sql - SQL Server データベースのすべてのデータを削除する
データベースのすべてのテーブルからすべてのレコードを削除するにはどうすればよいですか? 1 つの SQL コマンドで実行できますか、それともテーブルごとに 1 つの SQL コマンドが必要ですか?
mysql - 1回のクエリで複数の削除
Table1から削除WHEREConditionID=?ConditionID;
ConditionIDは、Table1、Table2、Table3に存在する列であり、個別に3回実行するのではなく、1つのクエリ(mysql)で3つすべてを実行する方法はありますか?
sql - table1、table2、table3 から削除する場所は?
削除したいすべてのテーブルに gamer_id 列がある場合
gamer_id = 123 の table1、table2、table3 から削除できますか?
または別の構文がありますか?
myisam - MySQL - MyISAM マルチテーブル削除 (ON CASCADE DELETE と同様)
レコードによって参照されているすべてのエントリと、別のテーブル内のすべての子も削除しようとしています。可能であれば、トリガーではなく複数テーブルの削除ステートメントを使用したいと思います。
例えば
したがって、上記のタイプのテーブル構造体が与えられた場合、行 2 を削除すると、forms
から行 2,3 が削除form_options
され、行 1が削除されform_options_info
ます。
sql - マルチテーブルHSQLDBを削除する
マルチテーブルDELETEステートメントはHSQLDBでサポートされていますか?
私はグーグルとフォーラムでいくつかの検索をしましたが、この点を扱っているトピックを見つけることができません。
mysql - SQL削除とカスケード
会社の連絡先、連絡担当者、キャンペーン、会社からの提案、寄付を記録する連絡管理システムを作成しています。
1つの会社に多くの連絡担当者を配置し、多くのキャンペーンで多くの提案を提出し、多くのキャンペーンに寄付することができます。会社に連絡担当者がいて、提案を提出し、寄付をする必要はありません。INSERT、UPDATE、およびSELECTを使用してクエリを正常に作成しましたが、DELETEは使用していません。現在、このクエリを使用して、会社とそのすべての関連データを削除しています。
このクエリにエラーがあったとしても、会社は削除されないことを私は知っています。より良いオプションとしてDELETECASCADEについて読んだことがありますが、その方法がわかりません。誰かがそれを行う方法について何か考えがあれば、私はそれを本当に感謝します。
mysql - バイナリ ログを有効にしてセーフ モードで複数テーブルの削除を実行するにはどうすればよいですか?
次のデータ構造があるとしましょう。
テーブルB
には 3000 を超えるレコードが含まれている可能性があります。約 600 のレコードが、テーブル内の異なる行を参照していますC
。私のサーバーでは 2 つの設定が有効になっています。
質問: table を介して table のレコードに参照されている table から、警告を発行せずにすべてのレコードを効率的に削除するにはどうすればよいですか?A
C
B
私が試したこと:
DBMS サーバーの問題safe_mode
:
エラー コード: 1175。セーフ更新モードを使用していて、KEY 列を使用する WHERE なしでテーブルを更新しようとしました。セーフ モードを無効にするには、[設定] -> [SQL クエリ] でオプションを切り替えてから再接続してください。
B.
エイリアスを削除しました:
ええ、それは成功しましたが、私はこれを持っています:
影響を受ける 2 行、1 つの警告: 1592 BINLOG_FORMAT = STATEMENT であるため、ステートメント形式を使用して安全でないステートメントがバイナリ ログに書き込まれました。別のテーブルから選択した後に自動インクリメント列を含むテーブルに書き込むステートメントは安全ではありません。これは、行が取得される順序によって、どの行が (存在する場合) 書き込まれるかが決まるためです。この順序は予測できず、マスターとスレーブで異なる場合があります。
また、私は PRIMARY KEY の使用を強制しようとしていました:
しかし、それも役に立ちませんでした。サーバーに対して悪いことや悪いことをしていますか? どのアプローチが正しいですか?何か不足していますか?
前もって感謝します。どんな助けでも大歓迎です。
PS: Google と検索バーの使い方を知っています。これが私が見つけたものです:
https://stackoverflow.com/questions/12275864/multiple-delete-not-working-with-inner-join
http://tech-solutions4u.blogspot.ru/2012/09/mysql-multi-delete-issue-in-safe-mode.html
等々。試してみましたが、最終的には、「しばらくの間...」でもサーバー機能(私が設定したものではありません)を無効にするという考えは好きではありません。
編集:
私は、GROUP_CONCAT(ID_B)
一時変数に保存し、その「スカラー」値で削除を実行する回避策があることを知っています:
しかし、それはおおよそ600 * 5 = 3000
の文字になるので、この考えも好まれません。つまり、他に何もできない場合は、それが最後のオプションになります。