私はフロントエンド開発者としての仕事で私の最初の数ヶ月後にバックエンドの開発に就き始めました。私はpostgreSQLと一緒に働いていて、nextval()関数の周りに私の頭を包んでいるようには見えません。私はこれを読んだが、それは私には分かりません。 http://www.postgresql.org/docs/current/interactive/functions-sequence.html nexval()のメリット/ユースケースは何ですか?postgresql nextval()
2
A
答えて
11
NEXTVAL
は、シーケンスから次の値を取得する関数です。
順序に関係なく取引等
あなたがNEXTVAL
を呼び出すたびに、呼び出しごとに異なる常に増加する番号を返すオブジェクトである、あなたは別の番号を取得します。
これは主に、テーブルのサロゲート主キーの生成に使用されます。
あなたはこのようなテーブルを作成することができます
CREATE SEQUENCE mysequence;
CREATE TABLE mytable (id BIGINT NOT NULL PRIMARY KEY, value INT);
をし、このような値を挿入します。
INSERT
INTO mytable (id, value)
VALUES
(NEXTVAL('mysequence'), 1),
(NEXTVAL('mysequence'), 2);
をして何を得る参照してください。
SELECT * FROM mytable;
id | value
----+-------
1 | 1
2 | 2
PostgreSQLは素敵な構文を提供していますこれのための砂糖:
あなたのINSERT文をロールバックまたは2つの異なるセッションからの同時実行文を実行した場合でも、返されることINSERT
INTO mytable (value)
VALUES (1),
(2); -- you can omit id, it will get filled for you.
注:
CREATE SEQUENCE mytable_id_seq; -- table_column_'seq'
CREATE TABLE mytable (id BIGINT NOT NULL PRIMARY KEY DEFAULT NEXTVAL('mytable_id_seq'), value INT); -- it's not null and has a default value automatically
と同等であり、このように使用することができます
CREATE TABLE mytable (id BIGSERIAL PRIMARY KEY, value INT);
シーケンス値は決して同じではなく、決して再利用されることはありません(CYCLE
の下の文書の細かい部分を読んでください)。
プライマリキーのすべての値がテーブル内で一意に生成されることを確認できます。
関連する問題
- 1. PostgreSQLシーケンスnextval()strange behavior
- 2. SequelizeJSのカスタムPostgresqlシーケンスNextval
- 3. SQL ServerからpostgresqlへのDBLink:シーケンスの取得nextval
- 4. PostgreSQLのnextval()をlaravelから取得しますか?
- 5. CakePHP/Postgres nextval()
- 6. Hibernate SequenceGeneratorが正しくないnextvalを返す
- 7. nextvalが次の未使用のIDであるようにrestart
- 8. Hibernateとpostgresql bigserial - 非順列
- 9. Postgresqlのシーケンス
- 10. 私は、次のPostgreSQLのスキーマを分析していシーケンス
- 11. javaのpostgresqlテキスト[]を
- 12. sqlalchemy + postgresql hstore to string
- 13. は読み取り専用トランザクションでnextval()を実行できません
- 14. 代替の選択<sequence> SQL ServerのOracleのデュアルから.nextval?
- 15. PostgreSQLのUNIQUE制約は、ドッカーコンテナ
- 16. C#とPostgreSQLのINSERT INTO
- 17. のPostgreSQL 9.4 PostgreSQLの
- 18. postgreSQLの:行を複製する方法
- 19. Ruby on Rails + PostgreSQL:カスタムシーケンスの使用
- 20. PostgreSQLのレプリケーションツールPostgreSQLのWikiに
- 21. postgresql
- 22. PostgreSQL;
- 23. PostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLのアクションへの投稿
- 24. postgresqlプロシージャを最適化する方法
- 25. postgresqlのノイズを取り除く方法
- 26. 移行時のDjango Postgresqlのデフォルトカラムのドロップ
- 27. PostgreSQLのチェックはPostgreSQLではエラー
- 28. AWS RDS PostgresqlをオンプレミスPostgresqlに複製
- 29. エラー:私のPostgreSQL 9.5データベースにPostgreSQLの
- 30. PostgreSQLとPostgreSQL Plusの高度なサーバクライアントコネクタ