Τι κάνει το INSERT ON DUPLICATE KEY UPDATE στη MySQL;

Ti Kanei To Insert On Duplicate Key Update Ste Mysql



Κατά την εργασία με μια βάση δεδομένων MySQL, οι χρήστες ενδέχεται περιστασιακά να αντιμετωπίσουν ένα διπλό σφάλμα παραβίασης κλειδιού όταν προσπαθούν να εισαγάγουν μια νέα εγγραφή σε έναν πίνακα. Αυτό το σφάλμα παρουσιάζεται όταν υπάρχει ήδη μια σειρά με το ίδιο πρωτεύον κλειδί ή μοναδικό κλειδί. Ωστόσο, αυτό το ζήτημα μπορεί να αντιμετωπιστεί με την ενημέρωση των υπαρχουσών εγγραφών με τις νέες τιμές. Σε τέτοιες περιπτώσεις, επιτρέποντας την « ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ Η δυνατότητα ' θα επιλύσει αποτελεσματικά αυτό το πρόβλημα.

Αυτή η ανάρτηση θα δείξει τι είναι το 'INSERT ON DUPLICATE KEY UPDATE' και πώς λειτουργεί στη MySQL.







Τι κάνει το INSERT ON DUPLICATE KEY UPDATE στη MySQL;

Στη MySQL, το ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ είναι ένα προηγμένο χαρακτηριστικό της δήλωσης INSERT που συνδυάζει δύο λειτουργίες σε μια ενιαία λειτουργία. Για παράδειγμα, εισάγει μια εγγραφή σε έναν συγκεκριμένο πίνακα εάν η δεδομένη εγγραφή δεν υπάρχει ήδη. Ωστόσο, εάν η επιθυμητή εγγραφή υπάρχει ήδη, τότε θα ενημερώσει την υπάρχουσα εγγραφή με τη νέα τιμή.



Για να ενεργοποιήσετε τη δυνατότητα INSERT ON DUPLICATE KEY UPDATE, οι χρήστες πρέπει να ακολουθήσουν την παρακάτω σύνταξη:



ΕΙΣΑΓΩΓΗ ΣΤΟ [ όνομα_πίνακα ] ( [ στήλη_1 ] , [ col_2 ] ,... )
ΑΞΙΕΣ ( [ val_1 ] , [ val_2 ] ,... )
ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ [ στήλη_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





Καθορίστε το όνομα πίνακα, τα ονόματα στηλών και τις τιμές της επιλογής σας στη θέση του table_name, col_1, col_2, … και val_1, val_2, …, κ.λπ.

Παράδειγμα: Πώς να χρησιμοποιήσετε τη δυνατότητα INSERT ON ΔΙΠΛΩΤΟ ΚΛΕΙΔΙ ΕΝΗΜΕΡΩΣΗ στη MySQL;



Αρχικά, συνδεθείτε στη βάση δεδομένων MySQL με τα κατάλληλα δικαιώματα και, στη συνέχεια, εκτελέστε την παρακάτω εντολή για να ανακτήσετε τα δεδομένα του πίνακα 'linuzhint_author':

ΕΠΙΛΕΓΩ * ΑΠΟ linuxhit_author;

Η εντολή Select ανακτά όλες τις εγγραφές του πίνακα 'linuzhint_author':

Τώρα εκτελέστε την ακόλουθη εντολή SQL για να εισαγάγετε ή να ενημερώσετε μια συγκεκριμένη εγγραφή στον πίνακα «linuzhint_author», με ενεργοποιημένη τη δυνατότητα «ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ»:

INSERT INTO linuxhit_author ( ταυτότητα , όνομα, ηλικία, κατάταξη συγγραφέα, email )
ΑΞΙΕΣ ( 6 , «Άλεξ Τζόνσον» , 29 , 3 , 'alex@example.com' )
ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ
όνομα = ΑΞΙΕΣ ( όνομα ) ,
ηλικία = ΑΞΙΕΣ ( ηλικία ) ,
Κατάταξη συγγραφέα = ΤΙΜΕΣ ( Κατάταξη συγγραφέα ) ,
email = ΑΞΙΕΣ ( ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ) ;

Εφόσον η καθορισμένη εγγραφή δεν υπάρχει ήδη στον πίνακα 'linuzhint_author', θα εισαχθεί με επιτυχία στον επιλεγμένο πίνακα:

Ας εισαγάγουμε μια διπλή εγγραφή και ας δούμε πώς το ' ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ ” λειτουργία λειτουργιών στη MySQL:

INSERT INTO linuxhit_author ( ταυτότητα , όνομα, ηλικία, κατάταξη συγγραφέα, email )
ΑΞΙΕΣ ( 3 , «Μάικλ Τζόνσον» , 28 , 4 , 'michael@example.com' )
ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ
όνομα = ΑΞΙΕΣ ( όνομα ) ,
ηλικία = ΑΞΙΕΣ ( ηλικία ) ,
Κατάταξη συγγραφέα = ΤΙΜΕΣ ( Κατάταξη συγγραφέα ) ,
email = ΑΞΙΕΣ ( ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ) ;

Από το παρακάτω απόσπασμα, φαίνεται ξεκάθαρα ότι η ήδη υπάρχουσα εγγραφή ενημερώθηκε με επιτυχία με τις νέες τιμές:

Η δυνατότητα 'INSERT ON DUPLICATE KEY' μπορεί επίσης να εφαρμοστεί σε μια συγκεκριμένη στήλη αντί για ολόκληρη την εγγραφή:

INSERT INTO linuxhit_author ( ταυτότητα , Κατάταξη συγγραφέα )
ΑΞΙΕΣ ( 3 , 2 )
ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙ συγγραφέαΚατάταξη = ΤΙΜΕΣ ( Κατάταξη συγγραφέα ) ;

Στον παραπάνω κωδικό, η 'κατάταξη συγγραφέα' ενός συγγραφέα με το αναγνωριστικό '3' ενημερώνεται σε νέα τιμή '2':

Έτσι λειτουργεί η δυνατότητα 'INSERT ON DUPLICATE KEY UPDATE' στη MySQL.

συμπέρασμα

Στη MySQL, το ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ ΔΙΠΛΟΥ ΚΛΕΙΔΙΟΥ είναι μια προηγμένη λειτουργία που μας επιτρέπει να συνδυάσουμε τη λειτουργικότητα της εισαγωγής μιας νέας σειράς και της ενημέρωσης/τροποποίησης μιας ήδη υπάρχουσας σειράς σε μία μόνο λειτουργία. Αυτή η δυνατότητα βοηθά τους χρήστες να αποφύγουν το σφάλμα 'παραβίαση διπλού κλειδιού' όταν προσπαθούν να εισαγάγουν μια νέα σειρά σε έναν συγκεκριμένο πίνακα. Αυτή η ανάρτηση εξηγεί τι είναι το 'INSERT ON DUPLICATE KEY UPDATE' και πώς λειτουργεί στη MySQL.