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

sql-server-2005 - SQL Server 2005: 2 つの主キーのいずれかに自動インクリメントを設定するとエラーが発生する

「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません」というエラーが表示されます。

テーブルには 2 つの主キーがあり、1 つは自動インクリメントに設定され、もう 1 つは渡された値で設定されます。

これは SQL Server 2005 で可能ですか? または私は何かが欠けていますか?

よろしくお願いします。

0 投票する
0 に答える
790 参照

composite-primary-key - 外部キーを複合キーとして Nibernate する

こんにちは、私は Nhibernate の初心者で、次のように説明されているプロジェクトに取り組んでいます。

ParentName と IList を使用する 1 対多の ChildrenList を含む 1 つの「Parents」テーブル、主キーを ParentId に設定

キーの 1 つとして ParentID を含む複合主キーを持つ 1 つの「子」テーブル

だから私はこのようにParents.hbm.xmlに1対多を設定しました

そして、このような Children.hbm.xml

現在、session.SaveOrUpdate メソッドを使用して、子のリストを含む親オブジェクトを MySQL データベースに保存するテストを行っていますが、常に失敗し、「子オブジェクトを挿入できません」とだけ言われました。

ここに私のテストコードがあります:

私は 1 つの親から多くの子までをテストしました。子の主キーは、生成された ChildrenId に設定されています。これはうまくいきます。しかし、どういうわけか、複合キーを使用してそれを行うことはできません。私の推測では、Children の ParentName は主キーですが、Parent の ParentName が入力された後にのみ入力されます。

別の質問は、上記の問題が解決された場合、これを使用して、子リストを含む親オブジェクト全体を取得できますか? (単純な単一のPKケースで試しましたが、子が複合キーの場合は機能しないようです)

ありがとう!

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

database - 主キーを最小にする必要があるのはなぜですか?

主キーは、テーブル内の行を一意に識別する属性または属性のセットです。ただし、主キーは一意であるだけでなく、最小限である必要があります。なぜそれが必要なのですか?

0 投票する
9 に答える
1787 参照

sql - 複合キーの使用について否定的な意見が多いのはなぜですか?

私は、自動番号付けされた識別子を愛する Access データベースに取り組んでいました。人の名、姓、生年月日で構成されるキーを使用する 1 つを除いて、すべてのテーブルがそれらを使用しました。とにかく、リレーションシップを表すテーブルが同じリレーションシップを 2 回以上保持できるため、人々は重複に関する多くの問題に直面し始めました。関係テーブルに複合キーを実装することでこれを回避することにしましたが、それ以来、重複の問題は発生していません。

それで、Access の世界での複合キーの評判の悪さはどうなっているのだろうと思っていました。クエリを書くのは少し難しいと思いますが、少なくともフロント エンドでデータを入力したり編集したりするたびに、大量のチェックを行う必要はありません。それらは信じられないほど非効率的か何かですか?

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

sql-server - Datetime 主キー列に基づいてレコードを取得する際の SQL Server 2005 エラー

SQL Server 2005 に複合主キー、つまり外部キー (INT) と DateTime 列を持つテーブルがあります。

SQLを実行すると、

そのようなレコードがある場合、レコードは返されませんでした。

行うための1つのオプションは

しかし、それでは、どうやら... 本当にこれに頼る必要があるのでしょうか? それともミリ秒まで指定しなければならないからですか?または解決策はありますか?

助けてください。前もって感謝します。

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

java - Hibernate:挿入可能= false、更新可能= falseは、外部キーを含む複合主キーコンスタレーションのどこに属しますか?

Hibernate またはその他の ORM で複合主キーを実装する場合、識別関係 (PK の一部である FK) を使用する複合主キー コンステレーションで、insertable = false、updatable = false を配置する場所が最大 3 つあります。

  1. 複合 PK クラスの @Column アノテーション (@Embeddable クラスのみ) または
  2. エンティティ クラスの関連付け @JoinColumn/s アノテーションまたは
  3. エンティティークラスの冗長PK プロパティの @Column アノテーションへ (@IdClass クラスのみ)

3 番目は、@IdClass と JPA 1.0 AFAIK を使用する唯一の方法です。http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Primary_Keys_through_OneToOne_Relationshipsを参照してください。ケース 1. と 2. のみを検討します。

Q: 一般的に、「挿入可能 = false、更新可能 = false」を配置するのに適した場所はどれですか?

この質問に関して、Hibernate で問題が発生しました。たとえば、Hibernate 3.5.x は Zip テーブルについて文句を言います。

と:

ご覧のとおり、country_code 列は PK と FK の両方です。そのクラスは次のとおりです。

エンティティ クラス:

複合 PK クラス:

insertable = false、updatable = false をエンティティ クラス アソシエーションの @JoinColumn に入れると、すべての例外が消え、すべて正常に動作します。ただし、上記のコードが機能しない理由がわかりません。これに問題があるのは Hibernate である可能性があります。@Column「挿入可能= false、更新可能= false」を評価していないように見えるため、説明されているのはHibernateのバグですか?

本質的に、標準的なJPAの方法、ベストプラクティス、または「挿入可能= false、更新可能= false」を配置する場所は何ですか?

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

python - Django - 複数列の主キー

django で複数列の主キーを実装したいと思います。

列の値(外部キー/日付)を連結する AutoSlugField() を実装しようとしました...

models.py :

次のパラメータを渡すと:

スラッグにパラメーターを追加しようとしましprimary_key=Trueた...しかし、「-1」「-2」で新しいインスタンスが作成されます...更新はまったく行われません...

私は何か見落としてますか ?

ありがとう、

ようあん

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

sql - Oracle インデックスの使用方法

私は、Oracle データベースの操作を担当する、Oracle の経験がほとんどない PHP 開発者です。

最初に気付いたのは、MySQL で見慣れているように、テーブルに自動番号インデックスがないように見えることです。代わりに、2 つのフィールドからインデックスを作成しているようです。

たとえば、インデックスの 1 つが日付フィールドと外部キー ID フィールドの組み合わせであることに気付きました。日付フィールドには日付とタイムスタンプ全体が格納されているように見えるため、組み合わせはかなりユニークです。

インデックス名が PLAYER_TABLE_IDX の場合、PHP コードでこのインデックスを使用するにはどうすればよいですか?

このインデックスで一意のレコードを参照したい (SQL クエリの WHERE 部分で 2 つの AND 句を使用するのではなく)

Oracle/PHP の達人に何かアドバイスはありますか?

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

oracle - 巨大なテーブルにindex/pkを作成するのに時間がかかりすぎます。Oracleを使用しています。うまくいっているかどうかはどうすればわかりますか?

私は非常に巨大なテーブルを持っており、2億行まであります。インデックス/pkはまったくありませんでした。この表の選択は(明らかに)遅くなっています。3列でPKを作成することにしました。私はこのテーブルの小さいバージョンを持っているテスト環境でそれをしました、そしてそれは魅力のように働きました。

したがって、家に帰る前に、ALTER TABLE HUGETABLE ADD CONSTRAINT PK_HUGETABLE PRIMARY KEY(ID1、ID2、ID3)を実行しました。

一晩中走ると思っていたのですが、もう24時間以上経っていて、まだ走っています。

クエリを開始する前にセッションIDを保持していた場合は、V$SESSION_LONGOPSで追跡できます。しかし、私はしませんでした。

クエリがどのように進行しているか、またはそれでもどのくらいの時間がかかるかを確認する方法はありますか?

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

sql-server-2005 - SQL Server 2005 における複合主キーとの外部キーの関係

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

Table2のFileIDandFileTypeは複合主キーです。Table1.FileID からへの外部キー関係を作成したいTable2

これを行うことは可能ですか?