La base de datos de Postgres establece el valor de secuencia de incremento de clave principal

 

 

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>

 

Supongo que te gusta

Origin www.cnblogs.com/ComputerVip/p/12702718.html
Recomendado
Clasificación