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}) </挿入>