Voglio aggiungere una riga a una tabella del database, ma se esiste una riga con la stessa chiave univoca voglio aggiornare la riga. Per esempio: insert into table (id, name, age) values(1, "A", 19) Diciamo che la chiave unica è id, e nel mio database , c'è una riga con …
Diversi mesi fa ho imparato da una risposta su Stack Overflow come eseguire più aggiornamenti contemporaneamente in MySQL usando la sintassi seguente: INSERT INTO table (id, field, field2) VALUES (1, A, X), (2, B, Y), (3, C, Z) ON DUPLICATE KEY UPDATE field=VALUES(Col1), field2=VALUES(Col2); Ora sono passato a PostgreSQL e …
Assumi una struttura di tabella di MyTable(KEY, datafield1, datafield2...). Spesso voglio aggiornare un record esistente o inserire un nuovo record se non esiste. Essenzialmente: IF (key exists) run update command ELSE run insert command Qual è il modo migliore per scrivere questo?
http://en.wikipedia.org/wiki/Upsert Inserisci Aggiorna proc memorizzato su SQL Server Esiste un modo intelligente per farlo in SQLite a cui non ho pensato? Fondamentalmente voglio aggiornare tre colonne su quattro se il record esiste, se non esiste voglio INSERIRE il record con il valore predefinito (NUL) per la quarta colonna. L'ID è …
Sto usando Python per scrivere su un database postgres: sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) Ma poiché alcune delle mie righe sono identiche, ottengo il seguente errore: psycopg2.IntegrityError: duplicate key value violates …
L'operazione UPSERT aggiorna o inserisce una riga in una tabella, a seconda che la tabella abbia già una riga che corrisponde ai dati: if table t has a row exists that has key X: update t set mystuff... where mykey=X else insert into t mystuff... Poiché Oracle non ha una …
Una domanda molto frequente qui è come fare un upsert, che è ciò che MySQL chiama INSERT ... ON DUPLICATE UPDATEe lo standard supporta come parte MERGEdell'operazione. Dato che PostgreSQL non lo supporta direttamente (prima di pag 9.5), come si fa? Considera quanto segue: CREATE TABLE testtable ( id integer …
Ho il seguente UPSERT in PostgreSQL 9.5: INSERT INTO chats ("user", "contact", "name") VALUES ($1, $2, $3), ($2, $1, NULL) ON CONFLICT("user", "contact") DO NOTHING RETURNING id; Se non ci sono conflitti restituisce qualcosa del genere: ---------- | id | ---------- 1 | 50 | ---------- 2 | 51 | …
Quando stai inviando una riga (PostgreSQL> = 9.5) e vuoi che il possibile INSERT sia esattamente uguale al possibile UPDATE, puoi scriverlo in questo modo: INSERT INTO tablename (id, username, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, username=EXCLUDED.username, password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email C'è …
Ho scritto un proc memorizzato che farà un aggiornamento se esiste un record, altrimenti farà un inserimento. Assomiglia a questo: update myTable set Col1=@col1, Col2=@col2 where ID=@ID if @@rowcount = 0 insert into myTable (Col1, Col2) values (@col1, @col2) La mia logica dietro a scriverlo in questo modo è che …
Devo eseguire UPSERT / INSERT O UPDATE su un database SQLite. C'è il comando INSERT OR REPLACE che in molti casi può essere utile. Ma se vuoi mantenere i tuoi ID con autoincremento in posizione a causa di chiavi esterne, non funziona poiché elimina la riga, ne crea una nuova …
MySQL ha qualcosa del genere: INSERT INTO visits (ip, hits) VALUES ('127.0.0.1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1; Per quanto ne so questa funzionalità non esiste in SQLite, quello che voglio sapere è se esiste un modo per ottenere lo stesso effetto senza dover eseguire due …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.