我正在尝试创建一个触发器,无论何时在名为hotel
的表中插入值,它都会从字段中获取一些值并将其插入另一个名为Restaurant
的表中。
我的Hotel_ID
是按顺序排列的,所以当我使用insert语句在hotel表中插入值时,我并没有真正给出它的值。这会为餐馆餐桌创建问题,因为它将Hotel_ID
的值设置为null。我知道在insert语句中我可以添加序列名称以便它可以工作但事情是,稍后我必须将我的表转换为APEX表单并且使用它们,你根本不能插入ID。 / p>
无论如何,这是我的触发器,基本上应该从Hotel
表的某些字段中获取值并将它们插入到Restaurant表中: -
create or replace TRIGGER HOTELREST BEFORE INSERT ON HOTEL
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO RESTAURANT(CITY,ADDRESS,HOTEL_ID)
VALUES (:NEW.CITY,:NEW.ADDRESS,:NEW.HOTEL_ID);
END IF;
END;
尽管City
和address
的值已插入restaurant
表中,但hotel_id
的值并不存在。这是hotel
的插入语句:
INSERT INTO HOTEL(NAME,CITY,COUNTRY,ADDRESS,RATINGS)
VALUES ('Westin','Manchester','UK',5);
现在再说一遍,在你说我没有给出酒店的ID之前,就像我说的那样,我正在使用序列,所以当这一行插入hotel
表时,{的值为{自动生成{1}}。我的触发器也应该在我的Hotel_Id
表中添加Hotel_Id
,但它没有。它仍然是空的。我该怎么办?