Domande taggate «upsert»

UPSERT: SQL-UPDATE una riga o, se non trovato, INSERISCE una nuova riga.

3
Modo idiomatico per implementare UPSERT in PostgreSQL
Ho letto di diverse UPSERTimplementazioni in PostgreSQL, ma tutte queste soluzioni sono relativamente vecchie o relativamente esotiche (usando CTE scrivibile ad esempio ). E non sono affatto un esperto di psql per scoprire immediatamente se queste soluzioni sono vecchie perché sono ben raccomandate o sono (beh, quasi tutte sono) solo …


2
Come ottenere l'ID della riga in conflitto in upsert?
Ho una tabella tagcon 2 colonne: id(uuid) e name(testo). Ora voglio inserire un nuovo tag nella tabella, ma se il tag esiste già, voglio semplicemente ottenere il idrecord esistente. Supponevo di poter usare solo ON CONFLICT DO NOTHINGin combinazione con RETURNING "id": INSERT INTO "tag" ("name") VALUES( 'foo' ) ON …





1
Come evitare l'utilizzo della query Unisci quando si esegue l'uperting di più dati utilizzando il parametro xml?
Sto cercando di aggiornare una tabella con una matrice di valori. Ogni elemento nella matrice contiene informazioni che corrispondono a una riga in una tabella nel database di SQL Server. Se la riga esiste già nella tabella, aggiorniamo quella riga con le informazioni nell'array specificato. Altrimenti, inseriamo una nuova riga …


2
PostgreSQL Upsert non funziona sulla tabella partizionata
Avere un tavolo come questo: CREATE TABLE aggregated_master ( "user" BIGINT, type TEXT, date TIMESTAMP, operations BIGINT, amount NUMERIC, PRIMARY KEY ( "user", type, date ) ); Questa tabella è il master da cui ereditano molte partizioni. Le partizioni vengono eseguite da MONTH nel campo DATA. Ad esempio: la partizione …

1
Perché CTE è aperto agli aggiornamenti persi?
Non capisco cosa volesse dire Craig Ringer quando commentò: Questa soluzione è soggetta a aggiornamenti persi se la transazione di inserimento viene ripristinata; non esiste alcun controllo per imporre che UPDATE abbia interessato qualsiasi riga. su https://stackoverflow.com/a/8702291/14731 . Fornisci una sequenza di eventi di esempio (ad es. Thread 1 fa …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.