Εισαγωγή σε έναν πίνακα MySQL ή ενημέρωση αν υπάρχει

Θέλω να προσθέσω μια γραμμή σε έναν πίνακα βάσης δεδομένων, αλλά αν υπάρχει μια γραμμή με το ίδιο μοναδικό κλειδί, θέλω να ενημερώσω τη γραμμή.

Για παράδειγμα,

insert into table (id, name, age) values(1, "A", 19)

Ας υποθέσουμε ότι το μοναδικό κλειδί είναι id, και στη βάση δεδομένων μου υπάρχει μια γραμμή με id = 1. Σε αυτή την περίπτωση θέλω να ενημερώσω αυτή τη γραμμή με αυτές τις τιμές. Κανονικά αυτό δίνει ένα σφάλμα. Αν χρησιμοποιήσω το insert IGNORE θα αγνοήσει το σφάλμα, αλλά και πάλι δεν θα γίνει ενημέρωση.

Λύση

Χρησιμοποιήστε INSERT ... ON DUPLICATE KEY UPDATE

QUERY:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
Σχόλια (23)

Δοκιμάστε αυτό:

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

Ελπίζω αυτό να βοηθήσει.

Σχόλια (6)