MySQL:2つの列が同じ値を持つことを禁止する

ラファエル

私は現在、学生が受講しているコースを追跡するテーブルを持っています。

CREATE TABLE IF NOT EXISTS `test`.`course_enrollment` (
`courseID` INT(10) UNSIGNED NOT NULL,
`studentID` BIGINT(10) UNSIGNED NOT NULL,
`startDate` DATE NULL DEFAULT NULL,
`endDate` DATE NULL DEFAULT NULL,
`semester` VARCHAR(5) NULL DEFAULT NULL,
`section` TINYINT(3) UNSIGNED NULL DEFAULT NULL,
`courseGrade` VARCHAR(3) NULL DEFAULT NULL,
FOREIGN KEY (`courseID`) REFERENCES courses(`courseID`) ON DELETE CASCADE
   ON UPDATE CASCADE,
FOREIGN KEY (`studentID`) REFERENCES students(`studentID`) ON DELETE CASCADE
   ON UPDATE CASCADE);

ただし、テーブルに2つの主キーを含めることはできません。ただし、学期が異なる限り、同じコースIDを2つ挿入できるようにしたいと思います。

例:(無関係ですが、FAは秋を表し、SPは春を表します)

CourseID:  -- Student ID --   Semester
1            30               FA15
1            30               FA16
2            30               FA16
2            30               SP17
2            31               SP17
But not
1            30               FA18
1            30               FA18

コースIDと学期は、同じ正確なコースIDと学期の重複を持つことはできません。

学期を一意のインデックスにすると、同じ学期を複数のコースに割り当てることができなくなります。

助けていただければ幸いです。

ナルト

2つの組み合わせが一意になるように、一意の複合キーを作成する必要があります。

ALTER TABLE `course_enrollment` ADD UNIQUE `unique_index`(studentID,`courseID`,`semester`);

編集:-各studentID、courseId、および学期は一意である必要があるため、一意の制約にもstudentIdを追加しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

値が異なる2つの同じスタイルを持つことは可能ですか?

分類Dev

テーブルの列(主キー)の2つの行が、同じ外部キー(別の列)で同じ文字/値を持つことは可能ですか?

分類Dev

MySQL で同じ列値を持つ複数の行の値を合計する

分類Dev

MySQLは、列Aで同じ値を持つが、列Bで異なる値を持つすべての要素を見つける

分類Dev

同じキー名を持つJson配列に値が存在することを確認します

分類Dev

2つの配列の同じキーと値が1つの配列の値がここにあるかどうかを確認します

分類Dev

同じ値を持つ2つの変数を比較するとfalseが返されます

分類Dev

2つの列が同じ値を持つテーブルからレコードを取得する方法は?

分類Dev

同じオブジェクトを参照する値が異なる2つのポインターを持つことは未定義の動作ですか?

分類Dev

2つのarrray値の連想配列で最小値のキーを見つけることは同じです

分類Dev

お互いの値を調べる同じ関数の2つのゴルーチンをどのように持つことができますか?

分類Dev

値が同じ 2 つの列を合計する

分類Dev

同じ値を持つ2D配列の行を削除する

分類Dev

同じEmailAddress列の値を持つIDを選択する

分類Dev

最大2つの値を持つことができる属性の列の命名

分類Dev

同じネストされた構造と同じキーを持つが値が異なる可能性がある2つのjsonを比較しますか?

分類Dev

SQL Server:同じ列値と特定の2次列値を持つ別の行がある場合、テーブルから行を除外します

分類Dev

mysqlで同じ値を持つ3つ以上の列を検索します

分類Dev

なぜJavaは、同じ名前を持つ2つの変数が同じスコープ内で宣言することができるのですか?

分類Dev

長さの異なる2つの文字列が同じハッシュコードを持つことはできますか?

分類Dev

親が異なる2人の子供がReactで同じキーを持つことはできますか

分類Dev

同じ値の2つ以上の列を持つ行を集約します

分類Dev

同じデータを持つ2つの異なるタイプのファイルの形式は、同じチェックサム値を持つことができますか?

分類Dev

MySQL_別の列で同じ値を持つ2つの列のそれぞれの値を合計する方法は?

分類Dev

同じMySQLの3つの列値を持つ行の出現をカウントする

分類Dev

同じ入力を持つ2つのスピナーを同じにすることはできません-エラーメッセージが必要です

分類Dev

mysql(同じ値を持つ列)で列を行に変換する方法

分類Dev

同じ名前の2つのConnectionStringを持つことは可能ですか?

分類Dev

MySQLテーブルの2つの属性を常に同じ値にすることはできますか?

Related 関連記事

  1. 1

    値が異なる2つの同じスタイルを持つことは可能ですか?

  2. 2

    テーブルの列(主キー)の2つの行が、同じ外部キー(別の列)で同じ文字/値を持つことは可能ですか?

  3. 3

    MySQL で同じ列値を持つ複数の行の値を合計する

  4. 4

    MySQLは、列Aで同じ値を持つが、列Bで異なる値を持つすべての要素を見つける

  5. 5

    同じキー名を持つJson配列に値が存在することを確認します

  6. 6

    2つの配列の同じキーと値が1つの配列の値がここにあるかどうかを確認します

  7. 7

    同じ値を持つ2つの変数を比較するとfalseが返されます

  8. 8

    2つの列が同じ値を持つテーブルからレコードを取得する方法は?

  9. 9

    同じオブジェクトを参照する値が異なる2つのポインターを持つことは未定義の動作ですか?

  10. 10

    2つのarrray値の連想配列で最小値のキーを見つけることは同じです

  11. 11

    お互いの値を調べる同じ関数の2つのゴルーチンをどのように持つことができますか?

  12. 12

    値が同じ 2 つの列を合計する

  13. 13

    同じ値を持つ2D配列の行を削除する

  14. 14

    同じEmailAddress列の値を持つIDを選択する

  15. 15

    最大2つの値を持つことができる属性の列の命名

  16. 16

    同じネストされた構造と同じキーを持つが値が異なる可能性がある2つのjsonを比較しますか?

  17. 17

    SQL Server:同じ列値と特定の2次列値を持つ別の行がある場合、テーブルから行を除外します

  18. 18

    mysqlで同じ値を持つ3つ以上の列を検索します

  19. 19

    なぜJavaは、同じ名前を持つ2つの変数が同じスコープ内で宣言することができるのですか?

  20. 20

    長さの異なる2つの文字列が同じハッシュコードを持つことはできますか?

  21. 21

    親が異なる2人の子供がReactで同じキーを持つことはできますか

  22. 22

    同じ値の2つ以上の列を持つ行を集約します

  23. 23

    同じデータを持つ2つの異なるタイプのファイルの形式は、同じチェックサム値を持つことができますか?

  24. 24

    MySQL_別の列で同じ値を持つ2つの列のそれぞれの値を合計する方法は?

  25. 25

    同じMySQLの3つの列値を持つ行の出現をカウントする

  26. 26

    同じ入力を持つ2つのスピナーを同じにすることはできません-エラーメッセージが必要です

  27. 27

    mysql(同じ値を持つ列)で列を行に変換する方法

  28. 28

    同じ名前の2つのConnectionStringを持つことは可能ですか?

  29. 29

    MySQLテーブルの2つの属性を常に同じ値にすることはできますか?

ホットタグ

アーカイブ