簡體   English   中英

Oracle SQL:如何在插入選擇時設置默認列值

[英]Oracle Sql: How to set a default column value on insert select

在我的Oracle 11數據庫中,我有一個sql腳本,用於將數據從一個表插入(遷移)到另一個表中,這是我經常遇到的問題, 例如

INSERT INTO TargetTable (eventname, eventplace, eventdate)
SELECT  name, eventplace, "How to insert time here?"   FROM SourceTable;

SourceTable沒有eventdate列,在TargetTable中它是“不可為空” ,因此我必須在其中插入一些內容,在這種情況下,我只想對所有行使用當前時間。 我怎樣才能做到這一點?

ps不僅是日期,這也可能是缺少的varchar列,我可能會在目標數據庫中設置默認值。

嘗試這個:

INSERT INTO TargetTable (
  eventname, 
 eventplace, 
  eventdate)
 SELECT name, 
        eventplace, 
        SysDate -- <- Current Date and Time
   FROM SourceTable;

像這樣修改表定義:

create table table_name
(
col1 varchar2(10),
default_date_col date default sysdate
);

這樣,您就不需要在插入中包括日期列,以防萬一。

對於日期字段,只需使用sysdate,對於varchar文件,我認為您做對了,請在選擇工作后添加“默認值”。

如果要將日期格式轉換為varchar2列,請使用

 TO_CHAR(SYSDATE,'YYYY.MM.DD HH24:MI:SS');

您可以按自己喜歡的方式玩游戲

TO_DATE(TO_CHAR(2013) || TO_CHAR(SYSDATE,'.MM.DD HH24:MI:SS'), 'YYYY.MM.DD HH24:MI:SS');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM