我还在学习如何使用 SQL,我需要一些帮助来创建这个数据库。
我创建了以下表格:
create table Worker
(Num_Worker number(20) PRIMARY KEY,
Name varchar2(30),
ID number(8),
Password varchar2(20));
create table Area
(Code_Area number(10) PRIMARY KEY,
Name varchar2(30),
Current_workers number(2)
Max_workers number(2));
create table Timetable
(ID_Timetable number(10) PRIMARY KEY,
Time_Entrance date,
Time_Exit date,
Code_Area number(10),
Num_Worker number(20),
Foreign Key (Num_Worker) references Worker(Num_Worker),
Foreign Key (Code_Area) references Area(Code_Area));
假设每个工人可以选择一个区域工作,但每个区域同时有一个限制或工人。
会发生的情况是工人会创建一个新的时间表,但在创建时间表之前,它应该检查他选择的区域,检查“Current_workers”是否与“Max_workers”的值相同,如果是则不应该让它发生。
我一直在尝试为此创建一个触发器,但我没有找到正确的语法,我也不知道该怎么做,或者是否有比使用更好的方法一个触发器。这就是我到目前为止所做的一切:
create trigger limit_worker_per_zone
before insert
on Timetable
for each row
as
BEGIN
if (select Current_Workers from Area) >= (select Max_workers from Area) <-Not sure...
BEGIN
???
END
END
如果您能在这方面帮助我,我将不胜感激。与此同时,我仍然会自己寻找更多信息,但帮助越多越好。