SQL ステートメントに問題があります。
worker、HasSkill、HasTime の 3 つのテーブルがあります。HasSkill と HasTime には、Worker テーブルを指す外部キーがあります。
(私はその属性を主キーの一部として作成しました。また、w_id が Worker テーブルに存在しない場合は、挿入を制限したいと考えています)
以下は私のSQL文です。ただし、挿入制限は機能しません。誰かが私にアドバイスをくれることを願っています。どうもありがとう。
1 CREATE TABLE IF NOT EXISTS Worker
2 (
3 id INTEGER NOT NULL AUTO_INCREMENT,
4 name VARCHAR(30),
5 email VARCHAR(30),
6 address VARCHAR(255),
7 hour_rate INTEGER,
8 PRIMARY KEY(id)
9 );
10
11 CREATE TABLE IF NOT EXISTS HasSkill
12 (
13 w_id INTEGER NOT NULL,
14 skill_name VARCHAR(255),
15 PRIMARY KEY(w_id, skill_name),
16 FOREIGN KEY(w_id) REFERENCES Worker(id) ON DELETE CASCADE
17 );
18
19 CREATE TABLE IF NOT EXISTS HasTime
20 (
21 w_id INTEGER NOT NULL,
22 day_of_week TINYINT NOT NULL,
23 start_time TIME NOT NULL,
24 end_time TIME NOT NULL,
25 PRIMARY KEY(w_id, day_of_week, start_time, end_time),
26 FOREIGN KEY(w_id) REFERENCES Worker(id) ON DELETE CASCADE
27 );