問題タブ [composite-primary-key]

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 に答える
9309 参照

sql - テーブルの主キーの列サイズを255に変更します

主キーの列サイズが50に設定されているテーブルがあります。いくつかの新しい要件のため、サイズを255に増やす必要があります。オンラインで検索した後、列がの一部である場合、列を変更できないことがわかりました。主キーの制約。そこで、制約を削除し、列を変更して、制約を追加し直すというアプローチを取りました。しかし、まだ小さな問題が発生しています。元の列はNon Null型であり、デフォルト値が設定されていますが、次のSQLを試してみると、「デフォルトに近い構文が正しくありません」というエラーが表示されます。

助けてくれてありがとう。Javid

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

django - Djangoの1つのリレーションに対する複数の外部キー

私はこのような2つのdjangoモデルを持っています:

ご覧のとおり、GradeValuesクラスには2つの主キーがあり、Reviewには2つの外部キーがあります。それらは、GradeValuesとReviewsの間の1対多の関係を構成することになっています。しかし、それは機能しません。これを強制する方法は?読み取り専用のOracleデータベースを使用しているため、何も変更できません。

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

hibernate - NaturalId、どのように機能しますか?

私はネイティブ ID に問題があり、正しく行っているかどうかわかりません。

生成された ID を持つ Aircraft というクラスがあります。ただし、そのネイティブ ID は、以下のようにシリアル番号 (整数) とモデル (カスタム クラス) です。

このクラスを XML からロードし、次のようにデータベースに保存します。

挿入には問題なく機能しますが、私の問題は、このコードを同じ情報で再度実行すると、Hibernate が別の航空機を挿入することです。Hibernate が現在のレジストリのみを更新することを望みます。

serialNumber 属性と Model 属性をテストするために equals() メソッドをオーバーライドしましたが、呼び出されません。

serialNumber と model を持つオブジェクトが NativeId であることを Hibernate に理解させる方法がわかりません。

前もって感謝します!

アレクサンドル

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

ruby-on-rails-3 - Rails 命名規則を使用しない既存のデータベース用の Rails アプリ

Java Web アプリ用に作成された既存のデータベース用の Rails アプリを作成したいと考えています。主キーは、ActiveRecord が期待する自動インクリメントの「id」列ではなく、2 つの特定の属性に基づくマルチパート キーです。また、外部キーは Rails 規則を使用して命名されていませんが、そのフィールドを別のテーブルのフィールドに参照する外部キー ステートメントがあります。これを :has_many や :belongs_to などの Rails モデル メソッドと連携させたいと考えています。

既存のスキーマを読み取り、そのスキーマ (特に私が説明したもの) に基づいて ActiveRecord モデルを生成できる自動ツールはありますか、それともすべてを手動で行う必要がありますか?

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

mysql - Hibernate n:mextractHashCodeはNullPointerExceptionをスローします

hibernateでオブジェクトを挿入しているときに、次の例外が発生します。データベースからの読み取りは魅力のように機能します。データベースプロバイダーとしてMySQL5.5を使用し、3.6.5を休止状態します。

私は次のデータベーススキーマを持っています:

ここで、セル内のidと場所は主キーであり、serveCell、neighbourCellと場所はcellatlocation内の複合主キーです。

挿入したいクラス:Cell.java

Location.java

CellAtLocation.java

そして最後に、主キーマッピング自体CellAtLocationPk.java

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

c# - コンボボックスを使用してC#で複合/複合キーを選択するにはどうすればよいですか?

C#.NET(Visual Studio 2010)に問題があります。SQL2005Expressに2つのデータテーブルがあります。

  1. 主キーが「ビル番号」であるビル、
  2. 主キーが「建物番号」(建物テーブルの外部キー)+「アパート番号」であるアパート。(アパートは建物の弱い実体であり、その鍵は複合です)。

両方のテーブルは、DataSetとしてプロジェクトにインポートしたより大きなデータベースの一部です。建物番号とアパート番号を選択するときに、アパートの詳細を表示したいと思います。建物番号はテキストボックスに設定され(その値は常に別のコントロールによって選択された建物番号です)、コンボボックスにテキストボックス内の建物にあるアパート番号のみを表示し、テーブル内のすべてのアパート番号を表示しないようにします(結果として1、2、3、1、4、5、1、2、...のようなもので(すべての行を選択するため))。すべての建物が同じアパート番号または同じ数のアパートを共有しているわけではなく、その場で追加/変更/削除する必要があります。

建物部分の選択が完了し、実行されます。現在の建物のアパート(少なくとも必要なアパート番号)だけを表示するのに問題があります。

datagridを使用したくない(より正確には許可されていません)。「詳細」コントロールのみ。

それ、どうやったら出来るの?私はC#の経験がほとんどなく、DataSetを「最大限に」活用する方法もわかりません。結果が得られるビューを作成することを考えましたが、ビューをインポートして建物番号をパラメーターとして設定する方法がわかりません。他の正気の方法も歓迎します。

助けてください。

シェイ、ありがとうございました。

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

database - 参照されるテーブルの主キー全体をカバーしていない外部キーを持つことは可能ですか?

私は2つのテーブルを持っています:

テーブル A: 複合主キーを使用。

表 B: 表 A を参照

ご覧のとおり、テーブルBは主キー全体を参照していませんが、SQL クエリでA使用される指定された使用月のグローバル値があるため、常にテーブル内の一意のエントリを参照します。A.Month

さて、私の質問は、それは許可されていますか、それともデータベース設計のいくつかの規則に違反していますか?

学士号を取得するために書かなければならない最終文書で使用するので、素晴らしい回答をいただければ幸いです。

よろしくお願いします!

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

hibernate - 主キーの一部として外部キーを休止状態にする


私は休止状態で作業する必要があり、この問題をどのように解決するかはよくわかりません。次のような1..nの関係を持つ2つのテーブルがあります。

どうすればHibernateでこれを管理できますか?

2番目のテーブルの主キーを管理する方法がわかりません...

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

php - MySQL + PHP:複数/複合主キーのlast_idを取得する

複数列の主キーを持つテーブルの最後に挿入されたIDを取得する必要があります。

  • これらのテーブルにはAUTOCOUNT列がありません。
  • パラメータ化されたクエリを使用しています(任意の順序)
  • PHP(5.3)とMySQLiモジュールの使用
  • 任意のINSERTSQLクエリ。(任意の形式)

例えば:

結果:$ last_id = $ mysqli-> insert_id?:getInsertedId() ;

この時点で、getPK()という名前の関数があり、次のように返されます。

今必要なのは、getInsertedId()を実装することです。SQLパーサーを使用せずにそれを行う簡単な方法はどれですか?

この質問に対する答えはすでにあると確信していますが、何も見つかりませんでした。

アップデート

私がこの質問をしている理由は、MySQLデータベース(個人用フレームワークの一部)に関連するすべてを制御するクラスがあるためです。クエリ(UPDATE、INSERT、DELETEなど)が渡されるset()というメソッドが1つあります。配列が渡されるinsert()のような他の特定のメソッドがあります。

last_inserted_idを格納する変数があります。その変数は後でいつでも呼び出すことができます。複数の主キーを持つさまざまなシステムに多くのテーブルがあります。insert()メソッドを使用する場合、last_inserted_id値を設定するのに問題はありませんが、一部のシステムでset()メソッドを使用する場合、その値を取得できず、0を返す必要があります。その動作を変更したいと思います。

上記の例で説明を簡略化したいと思います。

更新2

すべてのシステムが自分で制御しているわけではありません。たとえば、システムの1つは、クエリが実行されるように送信されるsoapメソッド(あらゆる種類のクエリ)を呼び出します。それらはset()メソッドによって処理されます。次に、最後のIDを取得する他のsoapメソッドがあります。一貫性を保つために、その値を返したいと思います。

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

entity-framework - Entity Framework - 複合主キーを持つオブジェクト

私はEntity Framework 4を使用していますが、最近、オブジェクトの主キーの1つを変更して、1列ではなく2列を含むようにしました(以前はID-Guidのみでしたが、現在はIDとバージョン-intを持っています) .

ID が同じでバージョンが異なる別のオブジェクトを作成しようとすると、次の例外が発生します。

データベースへの変更は正常にコミットされましたが、オブジェクト コンテキストの更新中にエラーが発生しました。ObjectContext が矛盾した状態にある可能性があります。内部例外メッセージ: オブジェクトのキー値が ObjectStateManager 内の別のオブジェクトと競合するため、AcceptChanges を続行できません。AcceptChanges を呼び出す前に、キー値が一意であることを確認してください。

データベースを調べたところ、意図したように、同じ ID でバージョンが異なる 2 つのオブジェクトがあります。

EF をこれらの設定と連携させるにはどうすればよいですか?

edmx ファイルからのエンティティの設定:

他に必要なコード部分があれば提供します。

編集:
テーブル定義:
テーブル

GUID はアプリケーションで設定されます。

編集 2:
テスト用に DB にそのようなオブジェクトが 2 つあります。コンテキストの Tests コレクションを見ると、2 つの異なるオブジェクト (バージョンと日付が異なる) ではなく、そのうちの 1 つが 2 回複製されていることがわかりました。