Πρέπει να προσθέσω πολλαπλές στήλες σε έναν πίνακα, αλλά να τοποθετήσω τις στήλες μετά από μια στήλη που ονομάζεται "επώνυμο".
Δοκίμασα το εξής: Έχω δοκιμάσει το εξής:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Παίρνω αυτό το σφάλμα:
Έχετε ένα σφάλμα στη σύνταξη της SQL σας.
αντιστοιχεί στην έκδοση του διακομιστή MySQL για τη σωστή σύνταξη που πρέπει να χρησιμοποιήσετε near ') AFTER
lastname
' στη γραμμή 7
<br>, Πώς μπορώ να χρησιμοποιήσω το AFTER σε ένα ερώτημα όπως αυτό;
Δοκιμάστε αυτό
ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;
ελέγξτε το σύνταξη
Αν θέλετε να προσθέσετε μια απλή στήλη μετά από ένα συγκεκριμένο πεδίο, τότε το ακόλουθο ερώτημα MySQL θα πρέπει να λειτουργεί:
ALTER TABLE users
ADD COLUMN count SMALLINT(6) NOT NULL
AFTER lastname
Αν θέλετε να προσθέσετε πολλαπλές στήλες, τότε θα πρέπει να χρησιμοποιείτε την εντολή 'ADD' κάθε φορά για μια στήλη. Ακολουθεί το ερώτημα της MySQL για το σκοπό αυτό:
ALTER TABLE users
ADD COLUMN count SMALLINT(6) NOT NULL,
ADD COLUMN log VARCHAR(12) NOT NULL,
ADD COLUMN status INT(10) UNSIGNED NOT NULL
AFTER lastname
Στη δεύτερη μέθοδο, η τελευταία στήλη ADD COLUMN** θα πρέπει στην πραγματικότητα να είναι η πρώτη στήλη που θέλετε να προσαρτήσετε στον πίνακα.
Π.χ.: αν θέλετε να προσθέσετε τις στήλες count
, log
, status
με την ακριβή σειρά μετά την στήλη lastname
, τότε η σύνταξη θα είναι η εξής:
ALTER TABLE users
ADD COLUMN log VARCHAR(12) NOT NULL AFTER lastname,
ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname,
ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname
Μια δυνατότητα θα ήταν να μην ασχοληθείτε με την αναδιάταξη των στηλών του πίνακα και απλά να τον τροποποιήσετε προσθέτοντας τις στήλες. Στη συνέχεια, δημιουργήστε μια προβολή που έχει τις στήλες με τη σειρά που θέλετε -- υποθέτοντας ότι η σειρά είναι πραγματικά σημαντική. Η προβολή μπορεί εύκολα να αλλάξει ώστε να αντικατοπτρίζει οποιαδήποτε διάταξη θέλετε. Δεδομένου ότι δεν μπορώ να φανταστώ ότι η σειρά θα ήταν σημαντική για προγραμματιστικές εφαρμογές, η προβολή θα πρέπει να αρκεί για τα χειροκίνητα ερωτήματα όπου μπορεί να είναι σημαντική.