1. Cree primero una secuencia de aumento automático
CREAR SECUENCIA personid_seq INCREMENTO 1 MINVALOR 1 MAXVALOR 9223372036854775807 INICIAR 1 CACHÉ 5;
Si necesita eliminar el comando de secuencia adicional: eliminar el comando de secuencia, eliminar eliminar no funciona, use el comando eliminar eliminar
SECUENCIA DE GOTA personid_seq ;
2 Luego, al crear la tabla, configure la clave primaria de incremento automático
nextval ('personid_seq' :: regclass)
Seleccione la columna ID, en la instrucción de configuración predeterminada nextval ('personid_seq' :: regclass), de modo que la clave primaria se incremente automáticamente al insertar datos
3. pgsql establece el valor de secuencia de incremento de la clave primaria e inserta un error de clave primaria de datos nuevos
Por ejemplo:
Primero ejecute el siguiente comando para insertar datos:
insert into pgsql_test (name) values ('testtest');
La razón del error es que el valor de secuencia de la clave primaria incrementada no coincide con el valor de campo de la clave primaria actual. Ahora necesitamos establecer el valor de clave primaria máxima actual al valor de secuencia y ejecutar la siguiente instrucción:
SELECT setval ('pgsql_test_id_seq', (SELECT MAX (id) FROM pgsql_users));
Donde pgsql_test_id_seq es su nombre de secuencia.
4.mybatis devuelve la identificación de auto-incremento después de la inserción postgresql
Cuando usamos mybatis + postgresql, a veces necesitamos devolver el valor de la identificación de auto-incremento al insertar datos. En este momento, al insertar, podemos escribir el archivo del mapeador de acuerdo con el siguiente ejemplo
<insert id = "insertUser"> <selectKey resultType = "int" order = "AFTER" keyProperty = "pid"> SELECT currval ('tbl_user_pid_seq' :: regclass) AS pid </selectKey> insert into tbl_user (name, age) valores (# {name}, # {age}) </insert>