2017-05-03 4 views
0

を変更している場合は、私が列をインクリメントするSQLクエリを書くことで助けを必要とする:インクリメント列日付列は、Oracleでは

初期テーブル構造:

ID   DATE   NAME 
--   ----   ---- 
1    20170428  abc 

今、次の3つのレコードを挿入する必要があります。そのテーブルは以下のようになりますについて:

ID   DATE   NAME 
--   ----   ---- 
1    20170428  abc 
2    20170429  def 
2    20170429  ghi 
2    20170429  jkl 

私は.csvファイルと日付から読んでいるこれ以上のデータは、現在のシステムの日付として返されます。

したがってIDは、日付がテーブルの最後のレコードから変更された場合にのみ増分する必要があります。

+0

MySQLまたはOracleを使用していますか? –

+0

あなたはあなたの挿入物(ポストコード)を作っていますか? – etsa

+0

bashスクリプトから呼び出されているpl SQLプロシージャを使用しています。 – mayur

答えて

0

このように動作する自動インクリメント列を設定する方法はわかりません。ただし、多くの点で好ましい方法の1つとして、オラクルのDENSE_RANK()を使用して、ID列をオンデマンドで生成するだけです。このようなもの:

SELECT 
    DENSE_RANK() OVER (ORDER BY DATE) ID, 
    DATE, 
    NAME 
FROM yourTable 
関連する問題