私はまだ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
これで私を助けてくれたら本当にありがたいです。その間、私はまだ自分自身でより多くの情報を探していますが、より多くの助けがより良いです。