Perguntas com a marcação «upsert»

3
Maneira linguística de implementar o UPSERT no PostgreSQL
Eu li sobre diferentes UPSERTimplementações no PostgreSQL, mas todas essas soluções são relativamente antigas ou relativamente exóticas (usando CTE gravável , por exemplo). E eu não sou um especialista em psql para descobrir imediatamente, se essas soluções são antigas porque são bem recomendadas ou são (bom, quase todas são) apenas …


2
Como obter o ID da linha em conflito no upsert?
Eu tenho uma tabela tagcom 2 colunas: id(uuid) e name(texto). Agora, quero inserir uma nova tag na tabela, mas se a tag já existir, quero simplesmente obter o idregistro existente. Eu assumi que eu poderia apenas usar ON CONFLICT DO NOTHINGem combinação com RETURNING "id": INSERT INTO "tag" ("name") VALUES( …







2
O PostgreSQL Upsert não funciona na tabela particionada
Tenha uma tabela como esta: CREATE TABLE aggregated_master ( "user" BIGINT, type TEXT, date TIMESTAMP, operations BIGINT, amount NUMERIC, PRIMARY KEY ( "user", type, date ) ); Esta tabela é o mestre do qual muitas partições são herdadas. As partições são feitas por MONTH no campo DATE. Por exemplo: A …

1
Por que o CTE está aberto a atualizações perdidas?
Não entendo o que Craig Ringer quis dizer quando comentou: Esta solução está sujeita a atualizações perdidas se a transação de inserção reverter; não há verificação para impor que o UPDATE afetou todas as linhas. em https://stackoverflow.com/a/8702291/14731 . Forneça uma sequência de eventos de exemplo (por exemplo, o Thread 1 …
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.