【SQL】實現每隔一分鐘插入一條資料

secooler發表於2010-05-13
需求:如何簡單的在一張表中瞬間初始化好一連續資料,規則為時間間隔為一分鐘的的DATE型別資料。
我們使用層次查詢技術來完成這個貌似很“複雜”的需求。

1.建立測試表T,僅包含一個時間欄位TIME
sec@ora10g> create table t (time date);

Table created.

2.先初始化一條時間點開始資料
sec@ora10g> insert into t(time) values (to_date('20100514','yyyymmdd'));

1 row created.

3.我們使用connect by方法來巧妙的完成這個需求
sec@ora10g> insert into t(time) select to_date('20100514','yyyymmdd')+level/24/60 from t connect by rownum <=10;

10 rows created.

sec@ora10g> commit;

Commit complete.

4.激動人心的結果
sec@ora10g> select * from t order by time;

TIME
-------------------
2010-05-13 00:00:00
2010-05-13 00:01:00
2010-05-13 00:02:00
2010-05-13 00:03:00
2010-05-13 00:04:00
2010-05-13 00:05:00
2010-05-13 00:06:00
2010-05-13 00:07:00
2010-05-13 00:08:00
2010-05-13 00:09:00
2010-05-13 00:10:00

11 rows selected.

5.小結
使用層次查詢(CONNECT BY)可以方便的完成批次資料建立的任務,在具體需求中如能靈活的使用層次查詢技術,將給我們帶來非常大的便利。
如果想一次性初始化一小時的資料,僅需要將“connect by rownum <=10”修改為“connect by rownum <=1440”即可,因為“一天”包含1440分鐘。

Good luck.

secooler
10.05.13

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-662662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章