es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puede la cláusula OnConflict de PostgreSQL combinarse con objetos JSON?

Quería realizar una inserción condicional en PostgreSQL. Algo así:

INSERT INTO {NOMBRE_DE_TABLA} (user_id, data) values (‘{user_id}’, ‘{data}’)
WHERE not exists(select 1 from files where user_id='{user_id}’ and data->’userType’=’Type1′)

Desafortunadamente, insert y where no cooperan en PostGreSQL. ¿Cuál sería una sintaxis adecuada para mi consulta? Estaba considerando ON CONFLICT, pero no pude encontrar la sintaxis para usarlo con el objeto JSON (Data en el ejemplo).

¿Es posible?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar ON CONFLICT con un objeto JSON. La sintaxis para utilizarlo sería:

    INSERT INTO {NOMBRE_DE_TABLA} (user_id, data) 
    VALUES ('{user_id}', '{data}') 
    ON CONFLICT (user_id) 
    DO UPDATE SET data = EXCLUDED.data 
    WHERE data->>'userType'='Type1';
    

Comments are closed.