既存データを元に連番を採番してINSERTするサンプルです。
サンプル
例)CODE, SEQが主キーのテーブルで、SEQ列を採番してINSERTする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
DECLARE nCode NUMBER; sValue VARCHAR2(10); BEGIN nCode := 100; sValue := 'hoge'; INSERT INTO test_tbl( CODE, SEQ, VALUE )VALUE( nCode, (SELECT NVL(MAX(SEQ), 0) +1 FROM test_tbl WHERE CODE = nCode), sValue ); END; |
解説
- INSERT時にSEQの最大値+1を取得することで連番を採番しています。