Aby wyrazić to jasno, poniższe odpowiedzi (użycie ALTER TABLE) będą w rzeczywistości działać, nawet jeśli kolumna zawiera już dane. Jednak konwersja kolumny swobodnej w kolumnę całkowitą spowoduje zaokrąglenie w niej wartości innych niż całkowite do najbliższej liczby całkowitej.
Przyjazne przypomnienie - Domyślna wartość dla kolumn to NULLABLE, więc jeśli masz kolumnę NOT NULL, nie zapomnij użyć opcji „MODIFY INTEGER NOT NULL”, w przeciwnym razie zmienisz kolumnę z NOT NULL na NULL.
Despertar,
3
Czy zmiana tabeli usunie dane w tabeli lub zakończy się niepowodzeniem, jeśli coś nie będzie narzekać na nowy typ kolumny?
EndermanAPM
1
ALTER TABLE tablename MODIFY nazwa kolumny INTEGER unsigned; <- jeśli zależy Ci na tym, aby nowa kolumna nie była podpisana. Była moja sprawa.
mircealungu
Myślę, że ostrzeżenie @Despertars może również mieć znaczenie dla zachowania jakichkolwiek specyfikacji CHARSET lub COLLATE.
!! Nie utrzymuje unikalnych ograniczeń, ale powinien być łatwo naprawiony za pomocą innego ifparametru do concat. W razie potrzeby pozostawię to czytelnikowi.
ALTER TABLE
) będą w rzeczywistości działać, nawet jeśli kolumna zawiera już dane. Jednak konwersja kolumny swobodnej w kolumnę całkowitą spowoduje zaokrąglenie w niej wartości innych niż całkowite do najbliższej liczby całkowitej.Odpowiedzi:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Spowoduje to zmianę typu danych danej kolumny
W zależności od liczby kolumn, które chcesz zmodyfikować, najlepiej wygenerować skrypt lub użyć GUI klienta mysql
źródło
źródło
Możesz także użyć tego:
źródło
Jeśli chcesz zmienić wszystkie kolumny określonego typu na inny typ, możesz generować zapytania za pomocą zapytania takiego jak to:
Na przykład, jeśli chcesz zmienić kolumny z
tinyint(4)
nabit(1)
, uruchom go w następujący sposób:i uzyskaj wynik podobny do tego:
!! Nie utrzymuje unikalnych ograniczeń, ale powinien być łatwo naprawiony za pomocą innego
if
parametru doconcat
. W razie potrzeby pozostawię to czytelnikowi.źródło
Np .:
źródło
Korzystasz z
alter table ... change ...
metody, na przykład:źródło
źródło
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
Możesz także ustawić wartość domyślną dla kolumny, po prostu dodaj słowo kluczowe DEFAULT, a następnie wartość.
Działa to również w przypadku MariaDB (testowana wersja 10.2)
źródło
Jeśli chcesz zmienić szczegóły kolumny, dodaj komentarz, użyj tego
źródło