問題タブ [foreign-keys]

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 投票する
1 に答える
1520 参照

c# - C# MySqlCommand 複数ドロップ外部キーの問題

誰かがこの問題で私を助けてくれることを願っています。

機能を強化してバグを修正する必要があるため、DB に「パッチ」を適用するための小さなアプリがあります。SQL ステートメントを含む単なるファイルであるパッチを読み取り、DB にクエリを実行して、適用されていないパッチを適用する内部ハウスキーピングを行います。とにかく、これは良いか悪いかにかかわらず、私たちが持っている解決策であり、かなりうまく機能しています...今まで.

多くのテーブルで既存の外部キー制約を削除し、現在の ON DELETE RESTRICT の代わりに ON DELETE CASCADE 句に置き換える必要があることがわかりました。これらの他のテーブルが参照するテーブルの PK を削除すると、他のすべてのテーブルがクリーンアップされるという考えです。

基本的に、パッチ ファイルには次のものが含まれます。

および関連する

C# 側では、この文字列 (パッチ ファイルにある SQL ステートメント) を次のように渡します。

次のエラー メッセージが表示されます。

'.\mydb\table2' から '.\mydb#sql2-6a8-3f' への名前変更エラー (errno: 152)

文字列にこれらの DROP FOREIGN KEY 行が 2 つある場合にのみ、これを取得します。

DROP 行にリストされているキーが列名ではなくキーであることを確認しました。他のすべては (少なくとも私には) 問題ないように見えます。

単一の MySqlCommand に複数の SQL ステートメントを含めましたが、問題はなかったので、少しイライラしています。

同じファイルを取得して、コマンド ラインから mysql.exe にパイプすることができ、正常に動作するため、ステートメントの処理方法が異なるようです。

誰かがこれについて何か考えを持っていますか?

ありがとう、マット

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

ado.net - ADO.NETエンティティモデルで外部キーを取得するにはどうすればよいですか?

3つのテーブル(およびエンティティモデル内の対応するエンティティ)がありますゲーム:Id-primaykey...その他の列

プレーヤー:ID-主キー...他の列

GamePlayer(プレーヤーは多くのゲームに参加できます)GameId->GamePlayerIdからの外部キー->Playerからの外部キー...他の列

私のコードでは、gameIdとplayerIdを他の方法で利用できます。これを使用して、プレーヤー(playerId)が特定のゲーム(gameId)に参加しているかどうかを知りたいです。だから私はこれをやっています:(エンティティは私のコンテキストオブジェクトです)

IQueryable query = entity.GamePlayer.where(gp =>((gp.Game.Id == gameId)&&(gp.Player.Id == playerId)))クエリが行を返す場合、プレーヤーが参加していることがわかりますそのゲームで。

エンティティ参照に関する複数のMSDNブログを読みましたが、混乱しています。MSDNは、最初にEntityReferenceオブジェクトのIsLoadedを確認する必要があり、ロードされていない場合はエンティティをロードする必要があり、それをクエリで使用することを推奨しているようです。

GamePlayerにはGamePlayer.GameReferenceとGamePlayer.PlayerReferenceがありますが、GamePlayerオブジェクトが手元にないため、参照がロードされているかどうかを確認できません。GamePlayerテーブルは、2つの1...*関係を保持します。GameIdとPlayerIdのみを使用してGamePlayerにクエリを実行する必要があります。私はここで何が間違っているのですか?

代わりに、Player(またはGame)オブジェクトを(IDを使用して)取得し、代わりにGamePlayerエンティティコレクションを確認する必要がありますか?SQLはとてもシンプルでした。これが非常に単純な場合、申し訳ありませんが、SQLクエリをエンティティクエリに変換するのに苦労しています。

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

django - Django フォーム - 逆外部キー結合からのデータのインプレース編集

Person テーブルと Phone テーブルがあります。Phone テーブルには、自動インクリメント ID である Person テーブルへの外部キーがあります。各人は任意の数の電話番号を持つことができます。新しい Person エントリを作成し、既存の Person エントリと一緒に編集しながら電話番号を入力する Django フォームを作成する方法はありますか?

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

mysql - NULLを許可するMySQL外部キー?

画像サイトをまとめています。基本的なスキーマは非常に単純な MySQL ですが、画像に関連付けられている可能性のある管理者フラグ (「不適切」、「著作権」など) を表現しようとすると、問題が発生します。私の現在の考えは次のとおりです。

(読みやすくするために省略しています。さまざまな外部キーとインデックスが順番に並んでいます、誓います)

tblImageFlags.flagTypeIDは、フラグ型のルックアップ テーブルで外部キー化されており、ご想像のとおり、 で外部キー化するtblImageFlags.resolutionTypeID 必要luResolutionTypes.resolutionTypeIDがあります。当面の問題は、フラグが最初に発行されたときに、論理的な解決タイプがないことです (これは の適切な使用法であると宣言しますNULL)。ただし、値が設定されている場合は、ルックアップ テーブルに対して外部キーにする必要があります。

この状況に対する MySQL 構文の回避策が見つかりません。それは存在しますか?最高の準優勝者は次のとおりです。

  • 「モデレートされていない」解像度タイプを追加する
  • NULLエントリを追加しますluResolutionTypes.resolutionTypeID(これは列でも機能しAUTO_INCREMENTますか?)

洞察をありがとう!

PSボーナスは、データベースの場合、それが「インデックス」か「インデックス」かを教えてくれた人に指摘します。


フォローアップ: テーブル構造の構文エラーであることが判明したことを指摘してくれた Bill Karwin に感謝します (NOT NULL許可したい場合は、列を に設定しないでくださいNULL!)。そして、それらのボーナスポイントを与えるのに十分なカルマが得られたら、私はします:)

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

sql - SQLServer 2k5のリンクサーバーテーブルのビューに外部キーを設定できますか?

別のデータベースにリンクされたサーバーを備えたSQLServerがあります。そのリンクサーバーにビューを作成しました

以下にしたいのですが

しかし、それはエラーを生成します:「外部キー'fk1_baz_to_foo'はユーザーテーブルではないオブジェクト'dbo.vw_foo'を参照します。」

次を使用して外部キーをテーブルに直接配置しようとすると

次に、次のエラーが発生します。

オブジェクト名'LINKEDSERVER.RemoteDatabase.dbo.tbl_bar'に、最大数を超えるプレフィックスが含まれています。最大は2です。

同じ効果を得る方法はありますか?

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

sql - SQL Server 2000 - テーブルの外部キー関係を照会する

Query a Table's Foreign Key Relationship とほぼ同じですが、SQL Server 2000の場合です。

特定のテーブル 'foo' に対して、foo を指す外部キーを持つ一連のテーブルを生成するためのクエリが必要です。

0 投票する
7 に答える
69168 参照

sql-server - SQL Server のビューの列を参照する外部キーを持つことはできますか?

SQL Server 2008 で与えられた

列が にある値に制限されるTableZ(A_or_B_ID, Z_Data)ように定義することは可能ですか? ビューに対する外部キーでこれを行うことはできますか?Z.A_or_B_IDViewC

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

sql-server-2005 - 複数の外部キーを新しいテーブルを指すように変更する

MS SQL Server 2005 で、置き換えたいテーブルがあります。他の多くのテーブルには、このテーブルへの外部キー参照があります。これらすべての参照を古いテーブルから新しいテーブルに単純にロールオーバーするために実行できるスクリプトはありますか?

それとも、これらの各外部キーを具体的に削除して、それぞれに新しいキーを作成する必要がありますか?

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

mysql - 更新、外部キー制約およびnull

C#でデータテンプレートを生成しています。この素晴らしいサイトの良い人々の助けを借りて、私はほとんどすべての問題を処理することができました。これが最後の問題になるはずです。これは私が取り組んでいるテンプレートなので、nullを含むテーブル内のすべてのフィールドが必要です。(object)this.fieldを追加することでnullを更新する方法を教えてもらいました?? DBNull.Valueですが、外部キーであるフィールドがあり、データベースを調べたときにnullと表示されていても、レコードをプルすると値は0になります。このフィールドを更新しようとすると、外部キーに違反していると表示されます。制約。この問題を回避するにはどうすればよいですか?nullソリューションは機能すると思いましたが、nullとして表示されず、0として表示されます。

ありがとう

0 投票する
5 に答える
9979 参照

java - JPA が「on delete set null」FK 制限を生成しない

関連する 2 つのクラスに JPA アノテーションが付けられています。アラームとステータス。1 つのアラームは 1 つのステータスを持つことができます。

必要なのは、1 つのステータスを削除し、削除されたそのステータスにあるアラームに null 値を「伝播」できるようにすることです。

つまり、外部キーを「on delete set null」として定義する必要があります。

例:

前:

After (id=2のステータスを削除)

Hibernate と PostgreSQL を使用して、ソース コードからデータベースを自動的に生成しています。可能なすべての CascadeType を試しましたが、成功しませんでした。

コードに何か問題がありますか? JPAでそれを行うことは可能ですか?