2010-01-09 75 views
15

Tôi đã tạo một bảng trong xe oracle XE, và tôi có một trường có loại ngày tháng. Tôi muốn nếu có thể khi tôi chèn một hàng, nó sẽ tự động điền vào trường đó với ngày hiện tại từ hệ thống.Tự động điền ngày vào bảng oracle

Tôi đang chèn các hàng từ lời nhắc SQL.

Cảm ơn

Trả lời

24

Dưới đây là như thế nào, bạn cần phải định dạng bảng của bạn đúng cách:

create table test (first number 
        , second timestamp default systimestamp 
        , third varchar2(12)); 

Và giá trị mặc định của bạn luôn luôn là hiện tại thời gian hệ thống định dạng như dấu thời gian.

+0

câu trả lời tuyệt vời. ty – Adnan

+3

Nếu cột có kiểu dữ liệu của 'dấu thời gian' tại sao không mặc định là' systimestamp' thay vì 'sysdate'? – APC

+0

sự khác biệt là gì? Tôi sử dụng sysdate, nếu bạn có thể giải thích rằng sẽ là tuyệt vời đối với tôi cũng như đối với Andan, người hỏi câu hỏi ngày – ant

3

thay đổi lĩnh vực này sau khi tạo bảng

ALTER TABLE table MODIFY time_collumn TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 
1

Hoặc bạn cũng có thể sử dụng một kích hoạt:

CREATE OR REPLACE TRIGGER date_trigger 

BEFORE INSERT 

ON table_name 

REFERENCING NEW AS NEW 

FOR EACH ROW 

BEGIN 

SELECT sysdate INTO :NEW.column_name FROM dual; 

END; 
+0

Điều này hoạt động tốt hơn nếu bạn cần đảm bảo rằng dấu thời gian không bao giờ được nhập theo cách thủ công. Mặc dù trường hợp đó có thể hiếm. –

Các vấn đề liên quan