問題タブ [sql-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 投票する
2 に答える
180 参照

sql - C# リストに基づいて挿入、削除、または更新するタイミングを知るにはどうすればよいですか?

「Person」、「Area」、「Person_Area」の 3 つのテーブルがあるとします。一人一人が多くの領域で働くことができ、各領域には多くの人がいる可能性があります。「person_Area」は、person_id と area_id を含むブリッジ テーブルです。

私のコードでは、個人フォームに 2 つの ASP リスト ボックスがあります。リスト ボックス 1 には使用可能なすべての領域が含まれており、リスト ボックス 2 には、ユーザーの選択に基づいてリスト ボックス 1 の領域を取り込むことができます。リスト ボックス 2 に入力される領域は、人がいる領域です。

これはすべて問題なく簡単ですが、データベースに保存することにしたとき、「person_Area」テーブルを挿入、更新、削除する方法がわかりません。すでにテーブルにある場合、その人物の領域を再挿入したくありません。また、ユーザーがリスト ボックス 2 から領域を削除した場合、サーバーにポストバックするときに、コードはその領域を削除することをどのように認識しますか?

特定の人物の「Person_Area」テーブル内のすべてのレコードを削除してから、現在のユーザー選択をすべて再度追加することは合理的でしょうか? またはより良いオプションがありますか?私は困惑しています。

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

sql - LINQtoSQLはDELETEを呼び出さない

外部キーにリンクされているさまざまなテーブルから一連のレコードを削除しています。'SubmitChanges'を呼び出すと、次のエラーが発生します。

DELETEステートメントがREFERENCE制約FK_PTXProductMap_CustomerProduct"と競合しました。データベース"SOTI"、テーブル" dbo.PTXProductMap "、列'InstanceId'で競合が発生しました。ステートメントは終了しました。

SubmitChangesが変更を保存しようとし、2つのレコードに対してDELETE SQL操作が呼び出されない場合に、どのクエリが実行されるかをプロファイラーで調べました。linq2sql-'DELETE'操作が呼び出されることを100%確信しています(次の行にブレークポイントを設定します:

必要なcpオブジェクトに対して呼び出されたかどうかを確認しました。DELETEは、同じテーブルからの2つの別のレコードに対して呼び出されます...ただし、必要なすべてに対してではありません

なぜこれが起こったのか考えがありますか?そしてそれを解決する方法は?

どんなアイデアでも大歓迎です。

PS私は64ビットWindows7でVS2008SP1、MSSQL2005を使用しています

PPS削除されたスコープにリンクされている別のテーブルのレコードをいくつか検出しました...削除によって現在のエラーが解決されましたが、削除するすべてのレコードに対して「DELETE」操作が生成されなかった理由はまだ不明です。

PPPS別のテーブルペアの場合と非常によく似た状況です。テーブルAには1つのレコードが含まれ、テーブルBにはA.1を参照する3つのレコードが含まれます。1つのトランザクションで削除することはできませんが、手動で(Management Studioを使用して)削除するとBから3つのレコードを削除してから、Aからレコードを削除することができます...なぜですか?

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

mysql - 特異なエントリを削除する

私がこのテーブルを持っている場合:

ご覧のとおり、IP「123.123.123.124」のユーザー「good」とIP「123.123.123.126」のユーザー「sebastian」には「コンパニオン」がなく、同じIP上の他のユーザーもいません。

ユーザー「sebbetest」には、コンパニオン「stackowerflow」があります。

ユーザー「tester」には、「admin」と「username」の2つのコンパニオンがあります。

ここで、コンパニオンが不足しているこれらのユーザーを削除したいと思います。どうすればいいですか?アトミックな理由と、同時アクセスによるデータベースの変更を防ぐために、SQLの単一の式ですべての「非コンパニオン」ユーザーを削除したいと思います。

私は次のように試しました:DELETE FROM lan WHERE COUNT(userip)= 1;

これを取得しました:エラー1111(HY000):グループ関数の使用が無効です

重複する行はありません。IPに関係なくエントリが一意であるかどうかを確認する必要がある場合、(タイプ、ユーザーID)は一意です。

つまり、IPが連続して一意である場合は、それを削除します。

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

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

Table1から削除WHEREConditionID=?ConditionID;

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

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

c# - 「DELETE ステートメントが REFERENCE 制約と競合しています」というエラーが表示されました。

外部キーを使用してテーブルを切り捨てようとしたところ、次のメッセージが表示されました。

FOREIGN KEY 制約によって参照されているため、テーブルを切り捨てることはできません」。

この問題に関する多くの文献を読み、削除を使用して解決策を見つけたと思いました

しかし、私はまだエラーメッセージを受け取りました:

" DELETE ステートメントが REFERENCE 制約と矛盾しています"。

Microsoft Management Studio で削除しようとして、前のクエリを実行すると

エラーは発生せず、正常に動作します。テーブルからすべての情報を削除して新しい情報を追加したいのですが、外部キーを削除して作成したくありません。

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

mysql - mysql where count(column_name) = 1?

私が使用しているクエリは次のとおりです。

このクエリは
1 |のようなものを返します。6
2 | 1
3 | 4
4 | 1
5 | 9

次のようなものを追加したいAND COUNT(k_id) = 1 ので、最終的には
2 |になります。1
4 | 1

ただし、グループ機能を使用すると無効になります。

どうすればこれを行うことができますか?


アップデート:

私の質問の他の部分はです。

これは削除ステートメントとして使用できますか?

何かのようなもの

私は得る

SQL 構文にエラーがあります。


フィードバックに基づいて、これを使用するように変更しました

しかし、今私は得ています

FROM 句で更新対象のテーブル 'tkl' を指定することはできません

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

sql-server - 既知のレコードIDによるSQLサーバーの一括削除

SQL Server 2008データベースから多くの行を削除する必要があります。スケーラブルでなければならないので、一括削除について考えていました.問題は、少なくとも私の場合、これに関する参照があまりないことです.

最初の要因は、削除するすべての行の ID を正確に把握しているため、TOP を使用したヒントはオプションではありません。また、保持したい行を少なくして削除するため、「ドロップ/一時」の必要はありません。テーブル/再作成」メソッド。

だから私は WHERE IN を使用することを考えていました.IDまたはXMLデータにIDを付けて、MERGEを使用して行を削除するオプションもあります。

1000 行以上を削除する必要がある場合、すべての ID を WHERE IN に送信すると問題になる可能性があります。MERGE の場合はどうでしょうか。一括挿入/更新/削除の問題をすべて解決できるのでしょうか。何を選ぶ?

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

mysql - MySQL の複数行の削除と更新

あるテーブルにエンティティ A があり、他のテーブルにそれに関連する任意の数のエンティティ B があるとします。

重複がないように、これらすべての B エンティティを新しい B エンティティのリストに置き換える必要がある状況があります。

簡単な方法は、最初に DELETE クエリを発行して古いものをすべて削除し、次に INSERT クエリを発行して新しいものを削除することですが、1 つのクエリでそれを行う方法があるのだろうか?

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

sql-server - 増分削除 - どのように有益ですか?

膨大な量のデータを含むテーブルがある場合...そして「1回限りの削除」ではなく増分削除を行う場合..利点は何ですか?

一括削除

増分削除

SQLサーバーテーブルのデータを 削除するには時間がかかります

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

mysql - Mysqlで重複以上を検索し、最初の入力を除いてそれらを削除します

id、length、timeなどの行を持つテーブルがあり、それらのいくつかは重複しています。ここで、長さと時間はいくつかの行で同じです。送信された最初の行のすべてのコピーを削除したい。

テーブル内のすべての重複を表示するためにこれを持っています。