OracleでIDの自動採番
メモ。
データベースでIDを使う場合に、シークエンスを使うまではOK。
で、IDのデフォルト値をシークエンスから採番した値を設定したかったのですよ……
CREATE TABLE HOGES ( ID NUMBER(10) DEFAULT HOGES_ID_SEQ.NEXTVAL NOT NULL, TITLE VARCHAR2(300) );
駄目でした。Oracleでは出来ないようです。
(PostgreSQLではできるらしい。というかserial型を使う?)
なので、データ作成時に値をとってくる事に。
INSERT INTO HOGES(ID, TITLE) VALUES(HOGES_ID_SEQ.NEXTVAL, 'title of hoge');
何か他に一般的なやり方があるような気がしてしょうがない。
「SQL書き方ドリル」をちゃんとやろうと思います。