Muszę dodać kilka kolumn do tabeli, ale ustawić kolumny po kolumnie o nazwie lastname
.
Próbowałem tego:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Otrzymuję ten błąd:
Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL, czy
lastname
w wierszu 7 znajduje się odpowiednia składnia do użycia w pobliżu „) PO ”
Jak mogę użyć PO w takim zapytaniu?
ALTER TABLE
składnia różni się nieco między dialektami.Odpowiedzi:
Spróbuj tego
sprawdź składnię
źródło
ADD
,ALTER
,DROP
iCHANGE
klauzule dopuszczalne w jednymALTER TABLE
rachunku, oddzielone przecinkami. Jest to rozszerzenie MySQL do standardowego SQL, które dopuszcza tylko jedną z każdej klauzuli na instrukcję ALTER TABLE.Jeśli chcesz dodać pojedynczą kolumnę po określonym polu, powinna działać następująca kwerenda MySQL:
Jeśli chcesz dodać wiele kolumn, musisz użyć polecenia „DODAJ” za każdym razem dla kolumny. Oto zapytanie MySQL w tym celu:
Wskazać na notatkę
W drugiej metodzie ostatnia
ADD COLUMN
kolumna powinna być pierwszą kolumną, którą chcesz dołączyć do tabeli.Np: jeśli chcesz dodać
count
,log
,status
dokładnie w takiej kolejności, polastname
, wtedy składnia faktycznie być:źródło
count
,log
,status
lubcount
,status
,log
?Nie można wymieniać wielu nazw kolumn za pomocą przecinków
ADD COLUMN
. Musisz wymieniać zaADD COLUMN
każdym razem, gdy definiujesz nową kolumnę.źródło
Ten jest poprawny:
źródło
Możesz to zrobić, działając dobrze dla mnie.
źródło
Jedną z możliwości byłoby nie zawracać sobie głowy zmienianiem kolejności kolumn w tabeli i po prostu modyfikować je, dodając kolumny. Następnie utwórz widok z kolumnami w żądanej kolejności - zakładając, że kolejność jest naprawdę ważna. Widok można łatwo zmienić w celu odzwierciedlenia dowolnego zamówienia. Ponieważ nie mogę sobie wyobrazić, że kolejność byłaby ważna dla aplikacji programistycznych, widok powinien wystarczyć dla tych ręcznych zapytań, w których może być ważny.
źródło
To da dobre wyniki.
źródło
To działa dobrze dla mnie:
źródło
Rozwiązanie, które działało dla mnie z wartością domyślną 0, jest następujące
źródło
Alternatywnie:
Ustawi je w żądanej kolejności, usprawniając instrukcję PO.
źródło