問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
複合主キーは主キー制約の一種ですが、複数のカラムの値の組み合わせが一意となることを要求する制約です。値の組み合わせでレコードが一意に定まれば良いので一部のカラムの値が重複していても問題ありません。
複合主キーは、各カラムで主キーを設定する代わりに、最後のカラムの後にカンマ区切りでPRIMARY KEY(カラム名1,カラム名2, ...)と記述することで設定できます。
これまでの問題で登場したordered_menuテーブルには複合主キーが使われています。これと同じ形式のテーブルを作成してみましょう。
次の表に示される条件でpracticeテーブルを作成したあと、DESC practice;でテーブルの定義を出力してください。
| # | カラム名 | データ型 | 制約 |
|---|---|---|---|
| 1 | ordered_id | INTEGER | PRIMARY KEY |
| 2 | menu_id | INTEGER | PRIMARY KEY |
| 3 | num | INTEGER | NOT NULL |
| 4 | sum | INTEGER | NOT NULL |
CREATE TABLE テーブル名(カラム定義):新たにテーブル名テーブルを作成するカラム名 データ型 制約からなり、複数のカラムを定義する場合はカンマで区切る