#MySQL主キーと外部キーを両方設定する方法
MySQLで主キーと外部キー両方を設定するため、以下のようなテーブルを生成しました。
MySQL
1コード 2CREATE DATABASE app DEFAULT CHARACTER SET utf8; 3 4USE app; 5 6CREATE TABLE meeting_room( 7 room_id INT NOT NULL AUTO_INCREMENT, 8 room_name varchar(255) NOT NULL, 9 PRIMARY KEY(room_id) 10)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 11 12CREATE TABLE reservable_room( 13 reserved_date date NOT NULL, 14 room_id int NOT NULL, 15 FOREIGN KEY(room_id) REFERENCES meeting_room(room_id), 16 PRIMARY KEY(reserved_date,room_id) 17)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 18 19CREATE TABLE reservation( 20 reservation_id int NOT NULL, 21 start_time time NOT NULL, 22 end_time time NOT NULL, 23 reserved_date date NOT NULL, 24 room_id int NOT NULL, 25 user_id int NOT NULL, 26 PRIMARY KEY(reservation_id), 27 FOREIGN KEY(reserved_date) REFERENCES reservable_room(reserved_date), 28 FOREIGN KEY(room_id) REFERENCES meeting_room(room_id), 29 FOREIGN KEY(user_id) REFERENCES user(user_id) 30)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 31 32CREATE TABLE user( 33 user_id int NOT NULL, 34 first_name varchar(255) NOT NULL, 35 last_name varchar(255) NOT NULL, 36 password varchar(255) NOT NULL, 37 role_name varchar(255) NOT NULL, 38 PRIMARY KEY(user_id) 39)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
reservable_roomテーブルのroom_IDに対して外部キーと主キーの両方を設定したいのですが、
上記のコードの通りテーブル生成を行うと、主キーのみ設定されているようです。
主キーと外部キーを共に設定したい場合は
どういった方法でテーブルを生成するのが適当でしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/06 11:19