【发布时间】:2021-12-29 23:25:05
【问题描述】:
我创建的用于存储门票信息的booked_tickets 表
CREATE TABLE BOOKED_TICKETS(
PNR_NO NUMBER PRIMARY KEY,
USER_ID NUMBER,
TRAIN_NO NUMBER,
SOURCE VARCHAR2(50),
DESTINATION VARCHAR2(50),
DATE_OF_ARRIV DATE,
DATE_OF_BOOKING DATE,
STATUS VARCHAR2(50),
NO_OF_SEATS NUMBER,
BOOKED_CLASS VARCHAR2(50),
SEAT_NO NUMBER);
Available_seats 表用于存储每个可用班级的可用座位信息。
AVAILABLE_SEATS:
CREATE TABLE AVAILABLE_SEATS(
TRAIN_NO NUMBER PRIMARY KEY,
SLEEPER_SEATS NUMBER,
ONE_TIER_SEATS NUMBER,
TWO_TIER_SEATS NUMBER,
THREE_TIER_SEATS NUMBER,
GENERAL_SEATS NUMBER);
这是将可用席位的值存储到变量中的问题所在的查询。
create or replace trigger status_tgr
before insert on booked_tickets
for each row
follows tkt_capitalize_tgr
declare
availSeats int;
begin
select availSeats = sleeper_seats from AVAILABLE_SEATS where train_no = :new.train_no;
update AVAILABLE_SEATS set sleeper_seats = availSeats - (:new.no_of_seats) where train_no = (:new.train_no);
end;
/
错误
Error at line 4: PL/SQL: SQL Statement ignored
2. before insert on booked_tickets
3. for each row
4. follows tkt_capitalize_tgr
5. declare
6. availSeats int;
【问题讨论】:
标签: sql database plsql oracle11g triggers