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

PostgreSQL-テーブル内の次のシリアル値

    IDを申請して返却する場合は、<を使用できます。 code> nextval() 、データを挿入せずにシーケンスを進めます。

    これがSERIALの場合は注意してください 列の場合、次のように、テーブルと列の名前に基づいてシーケンスの名前を見つける必要があります。

    Select nextval(pg_get_serial_sequence('my_table', 'id')) as new_id;
    

    これらのIDが順番に戻ってくるという鋳鉄の保証はありません(シーケンスはそれらを順番に生成しますが、複数のセッションがIDを要求してまだ使用していないか、 INSERT> IDは再利用されません)が、一意であることが保証されています。これは通常、重要なことです。

    実際にIDを使用せずにこれを頻繁に行うと、最終的には32ビットの integerの可能なすべての値を使い果たしてしまいます。 列(つまり、表現可能な最大の整数に達する)ですが、そのIDの行を実際に挿入する可能性が高い場合にのみ使用する場合は、問題ありません。



    1. Postgresでは、特定の列に可能な値をどのように制限しますか?

    2. リンクサーバーでの疑似列の使用

    3. SQLServerの日付と時刻のデータ型の比較

    4. PDOはリモートmysqlサーバーに接続できません