Postgresデータベースは主キーの増分シーケンス値を設定しました

 

 

1.最初に自己増加シーケンスを作成します

    CREATE SEQUENCE personid_seq  
      増加1  
      MINVALUE 1  
      MAXVALUE 9223372036854775807  
      スタート1  
      キャッシュ5; 

 

余分なシーケンスコマンドを削除する必要がある場合:シーケンス削除コマンド、削除削除は機能しません。ドロップ削除コマンドを使用してください

DROP SEQUENCE personid_seq;

 

2次に、テーブルを作成するときに、自動インクリメント主キーを設定します

nextval( 'personid_seq' :: regclass)

 


      デフォルト設定ステートメントnextval( 'personid_seq' :: regclass)でID列を選択して、データの挿入時に主キーが自動的に増分されるようにします。

3. pgsqlが主キーの増分シーケンス値を設定-新しいデータの主キーの挿入エラー

たとえば、次のとおりです。

 まず、次のコマンドを実行してデータを挿入します。

insert into pgsql_test (name) values ('testtest');

エラーの理由は、インクリメントされた主キーのシーケンス値が現在の主キーのフィールド値と一致しないためです。次に、現在の最大主キー値をシーケンス値に設定し、次のステートメントを実行する必要があります。

SELECT setval( 'pgsql_test_id_seq'、(SELECT MAX(id)FROM pgsql_users));

 
ここで、pgsql_test_id_seqはシーケンス名です。

 

4. mybatisはpostgresqlの挿入後に自己増分IDを返します

mybatis + postgresqlを使用する場合、データを挿入するときに自己増分IDの値を返す必要がある場合があります。このとき、挿入するときに、次の例に従ってマッパーファイルを書き込むことができます。

<挿入id = "挿入ユーザー">
    <selectKey resultType = "int" order = "AFTER" keyProperty = "pid">
        SELECT currval( 'tbl_user_pid_seq' :: regclass)AS pid
    </ selectKey>
    tbl_user(name、age)の値に挿入(#{name}、#{age})
</挿入>

 

おすすめ

転載: www.cnblogs.com/ComputerVip/p/12702718.html