2015-11-04 92 views
2

我收到了這個'消息'表。插入後返回多個值

CREATE TABLE message (
    id INT PRIMARY KEY, 
    user_id INT NOT NULL REFERENCES users (id) ON DELETE CASCADE, 
    category_id INT NOT NULL REFERENCES category (id) ON DELETE CASCADE, 
    text VARCHAR2(4000), 
    media VARCHAR2(500), 
    creation_date DATE DEFAULT SYSDATE 
); 

CREATE SEQUENCE message_seq; 
CREATE OR REPLACE TRIGGER message_bir 
BEFORE INSERT ON message 
FOR EACH ROW 

BEGIN 
    SELECT message_seq.NEXTVAL 
    INTO :new.id 
    FROM dual; 
END; 

之後我插入的東西,我需要最後插入的id和日期。

INSERT INTO message (user_id, category_id, media) 
VALUES (1, 1, 'fdsfsd') 
RETURNING id INTO :last_insert_id 

上面給了我最後插入的ID,但就像我說我還需要creation_date。我不想做一個選擇查詢後...

是否有辦法在運行插入後返回2值?

+0

,如果你想盡快插入後顯示插入日期那麼這將是永遠當前日期。爲什麼你不顯示當前的日期呢? –

+2

根據文檔,您應該可以編寫:'RETURNING id,creation_date INTO:last_insert_id,:last_creation_date'。請參閱http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/returninginto_clause.htm –

+0

由於服務器日期可能與客戶日期不同! – yooouuri

回答