sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQL9.1の主キーの自動インクリメント

    serial 多かれ少なかれ、列タイプであるため、integer serial text textと言っているようなものです 、serialと言うだけです :

    CREATE TABLE IF NOT EXISTS "category" (
      "id" SERIAL PRIMARY KEY,
      "name" varchar(30) DEFAULT NULL
    );
    

    自分でシーケンスを作成する場合は、デフォルト値のidを作成します。 シーケンス内の次の値。つまり、default nextval('your_seq')と言います。 :

    CREATE SEQUENCE your_seq;
    CREATE TABLE IF NOT EXISTS "category" (
      "id" integer PRIMARY KEY default nextval('your_seq'),
      "name" varchar(30) DEFAULT NULL
    );
    

    通常のserialをシミュレートするには テーブルが所有するシーケンスも作成する必要がある動作:

    alter sequence your_seq owned by category.id;
    

    シリアルタイプ を読む マニュアルのセクションは実り多いかもしれません。

    また、必要がない限り、テーブル名と列名を二重引用符で囲まないことをお勧めします。 PostgreSQLは識別子を小文字に折りたたむので、id および"id" 同じことですが、不必要な引用は悪い習慣であり、どこでも引用の大きな混乱につながる可能性があります。



    1. .netOracleプロバイダーのBadImageFormatException

    2. SQLServerの新しいドライバー…知っておくべきこと

    3. 複数のファイルをサーバーにアップロードし、データベースに書き込みます

    4. 各IDの最新の日付が複数回繰り返されているSQLの行を選択します