タグ付けされた質問 「primary-key」

キーとは、テーブル内で一意になり、nullにできない属性のセットです。

7
複数のテーブルの主キーを参照する外部キー?
データベースemployeesの下に2つのテーブル、つまりemployees_ceとemployees_snが必要です。 どちらにも固有の主キー列があります。 控除と呼ばれる別のテーブルがあり、その外部キー列は、employees_ceとemployees_snの主キーを参照する必要があります。これは可能ですか? 例えば employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess これは可能ですか? deductions -------------- id name khce1 gold khsn1 silver

4
select SCOPE_IDENTITY()が整数ではなく10進数を返すのはなぜですか?
つまり、ID列を主キーとして持つテーブルがあるので、それは整数です。では、なぜSCOPE_IDENTITY()C#アプリケーションにintではなく常に10進値を返すのですか?10進値は暗黙的にC#で整数に変換されないため、これは本当に厄介です。つまり、SQL ServerとPostgresを使用しているため、一連の要素を書き直し、多くのヘルパーメソッドを使用する必要があります。同等の機能 なぜSCOPE_IDENTITY()単純な整数を返さないのですか?主キーに10進数/非ID値を一般的に使用する人々はいますか?

6
Djangoモデルの主キーとしてUUIDを使用する(一般的な関係への影響)
いくつかの理由で^、いくつかのDjangoモデルで主キーとしてUUIDを使用したいと思います。そうする場合でも、ContentTypeを介してジェネリックリレーションを使用する「contrib.comments」、「django-voting」、「django-tagging」などの外部アプリを使用できますか? 例として「django-voting」を使用すると、投票モデルは次のようになります。 class Vote(models.Model): user = models.ForeignKey(User) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() object = generic.GenericForeignKey('content_type', 'object_id') vote = models.SmallIntegerField(choices=SCORES) このアプリは、投票されるモデルの主キーが整数であると想定しているようです。 ただし、組み込みのコメントアプリは、整数以外のPKを処理できるようです。 class BaseCommentAbstractModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type'), related_name="content_type_set_for_%(class)s") object_pk = models.TextField(_('object ID')) content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk") この「integer-PK-assumed」問題は、UUIDの使用を困難にするサードパーティアプリの一般的な状況ですか?または、おそらく、私はこの状況を誤解していますか? あまり問題を起こさずにDjangoの主キーとしてUUIDを使用する方法はありますか? ^いくつかの理由:オブジェクト数の非表示、URLの「IDクロール」の防止、複数のサーバーを使用した競合しないオブジェクトの作成、...

26
主キーはどうですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私のチームでのかなり活発な議論で、私はほとんどの人が主キーとして好きなものを考えるようにさせられました。次のグループがありました Int / BigIntは、自動インクリメントで十分な主キーです。 主キーを構成する列が少なくとも3つ必要です。 Id、GUID、および人間が読める行識別子は、すべて異なる方法で処理する必要があります。 PKの最善のアプローチは何ですか?あなたがあなたの意見を正当化できればそれは素晴らしいでしょう。上記より良いアプローチはありますか? 編集:誰でも簡単にサンプル/アルゴリズムを使用して、適切にスケーリングできる行の人間が読める識別子を生成できますか?

14
Railsを使用して、主キーを整数型の列ではないように設定するにはどうすればよいですか?
Railsの移行を使用してデータベーススキーマを管理しており、主キー(特に文字列)として非整数値を使用したい単純なテーブルを作成しています。私の問題から抽象化するためにemployees、従業員が英数字の文字列で識別されるテーブルがあるとしましょう"134SNW"。 次のような移行でテーブルを作成してみました。 create_table :employees, {:primary_key => :emp_id} do |t| t.string :emp_id t.string :first_name t.string :last_name end これが私に与えるのは、その行t.string :emp_idを完全に無視して先に進み、整数列にしたように見えることです。execute呼び出しでSQLを記述せずに、railsにPRIMARY_KEY制約(PostgreSQLを使用しています)を生成させる他の方法はありますか? 注:文字列列を主キーとして使用するのは最善ではないことを私は知っているので、整数の主キーを追加するというだけの答えはありません。とにかく追加するかもしれませんが、この質問はまだ有効です。

5
SQLiteテーブルから最後の自動インクリメントIDを取得するにはどうすればよいですか?
ID(主キー、自動インクリメント)列とコンテンツ(テキスト)列を持つメッセージテーブルがあります。 ユーザー名(主キー、テキスト)とハッシュの列を持つユーザーテーブルがあります。 メッセージは1人の送信者(ユーザー)から多くの受信者(ユーザー)に送信され、受信者(ユーザー)は多くのメッセージを持つことができます。 MessageID(MessagesテーブルのID列を参照)とRecipient(Usersテーブルのusername列を参照)の2つの列を持つMessages_Recipientsテーブルを作成しました。このテーブルは、受信者とメッセージの間の多対多の関係を表します。 だから、私が持っている質問はこれです。新しいメッセージのIDは、データベースに保存された後に作成されます。しかし、この新しいMessageIDを取得するために、追加したばかりのMessageRowへの参照を保持するにはどうすればよいですか?もちろん、最後に追加された行をデータベースでいつでも検索できますが、マルチスレッド環境では別の行が返される可能性がありますか? 編集:私はSQLiteについて理解しているので、を使用できますSELECT last_insert_rowid()。しかし、ADO.Netからこのステートメントを呼び出すにはどうすればよいですか? 私の永続性コード(メッセージとmessagesRecipientsはDataTablesです): public void Persist(Message message) { pm_databaseDataSet.MessagesRow messagerow; messagerow=messages.AddMessagesRow(message.Sender, message.TimeSent.ToFileTime(), message.Content, message.TimeCreated.ToFileTime()); UpdateMessages(); var x = messagerow;//I hoped the messagerow would hold a //reference to the new row in the Messages table, but it does not. foreach (var recipient in message.Recipients) { var …

3
PostgreSQLの主キーを1にリセットします
PostgreSQLテーブルの主キーをリセットして、データが入力されたテーブルで再び1から開始する方法はありますか? 現在、1000000以上の数値を生成しています。すべてをリセットして1から開始し、既存のすべてのデータをそのまま維持します。

14
テーブルの主キーを取得する方法は?
mysql-databaseから主キーフィールドの名前を取得する方法はありますか?例えば: 私はこのようなテーブルを持っています: +----+------+ | id | name | +----+------+ | 1 | Foo1 | | 2 | Foo2 | | 3 | Foo3 | +----+------+ フィールドIDが主キーである場合(自動インクリメントがありますが、使用できません)。PHPでフィールド名「id」を取得するにはどうすればよいですか?
81 php  mysql  primary-key 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.