我对 sql 语句有疑问。
我有三个表:worker、HasSkill 和 HasTime。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 );