Oracle PLSQL:将一个表的序列ID插入到另一个表中

时间:2017-12-10 00:45:38

标签: sql database oracle plsql database-trigger

我正在尝试创建一个触发器,无论何时在名为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;

尽管Cityaddress的值已插入restaurant表中,但hotel_id的值并不存在。这是hotel的插入语句:

INSERT INTO HOTEL(NAME,CITY,COUNTRY,ADDRESS,RATINGS) 
VALUES ('Westin','Manchester','UK',5);

现在再说一遍,在你说我没有给出酒店的ID之前,就像我说的那样,我正在使用序列,所以当这一行插入hotel表时,{的值为{自动生成{1}}。我的触发器也应该在我的Hotel_Id表中添加Hotel_Id,但它没有。它仍然是空的。我该怎么办?

0 个答案:

没有答案