PostgreSQLでは、ユーザがカスタム値を指定することができない自動インクリメントカラムを持つテーブルを作成します。シリアル列の次のシーケンスを常に使用する(ユーザ値は許可されていません)
Oracleでは、自動インクリメント列を作成する2つの方法があります。
この最初の例では、ユーザーが値を明示しない場合は、id列が自動的に増分されます。これはpostgresにおけるSERIALの現在の実装です。
CREATE TABLE identity_test_tab (
id NUMBER GENERATED BY DEFAULT AS DENTITY,
description VARCHAR2(30)
);
次の例ではID列は、常に自動的にインクリメントし、ユーザが任意の値を指定することはできませんです。
CREATE TABLE identity_test_tab (
id NUMBER ALWAYS AS IDENTITY,
description VARCHAR2(30)
);
postgresの2番目の例と同等のことを知りたいですか?
あなたがこれを行うためのトリガを必要とします。 –
トリガーは、ユーザーによって定義された値にかかわらず、シーケンスからの値を「書き換え」ます。 btw - この動作は、値が受け入れられたというユーザの錯覚をもたらしますが、トリガはシーケンスからの値を消費します。 –
@ VaoTsun:ユーザが値 –