2012-04-25 10 views
12

Zasadniczo obecnie mam kolumnę w tabeli MySQL, która jest int.Zmiana kolumny w MySQL z int na podwójny?

Chciałbym zmienić to na podwójne. Przeszukałem internet, ale wszystko, co wymyśliłem, to konwersja po uzyskaniu wartości z kolumny (jak konwersja jakiejś daty na datę), ale nie o to mi chodzi.

Zgaduję, że jest to coś z Alter Table i wyglądałem tak na stronie dev MySQL, ale nie mogłem znaleźć tego, czego szukałem.

+0

przypuszczam znaczy „kolumny”, a nie „rząd”? – eggyal

+0

Tak, właśnie to robię. – Lolmewn

Odpowiedz

22

Oto prawdziwa składnia. Upewnij się, aby ustawić opcje dopuszczania wartości null odpowiednio za:

ALTER TABLE your_table 
MODIFY COLUMN your_column DOUBLE NULL; 

lub

ALTER TABLE your_table 
MODIFY COLUMN your_column DOUBLE NOT NULL; 
+0

Nullability jest opcjonalne w [*** 'column_definition' ***] (http://dev.mysql.com/doc/refman/5.6/en/create-table.html) - domyślnie jest to' NULL', jeśli nieokreślony; dlaczego nie twierdzić, że wszystkie pozostałe opcjonalne atrybuty powinny być określone w miejsce akceptowania ich wartości domyślnych? – eggyal

+1

Próbuję pomóc OP uniknąć przypadkowej zmiany nullability, gdy zmieniają typ danych. Z pewnością to samo dotyczy wartości domyślnych itp., Ale próbowałem rozwiązać najbardziej prawdopodobny scenariusz. Jeśli oryginalna kolumna NIE była NULL, a OP używa Twojej odpowiedzi, kolumna zmieni się na NULL. –

+0

Dzięki Ike - myślę, że wyjaśnienie jest bardzo pomocne (mam nadzieję, że również dla OP). +1 – eggyal

4

Masz rację, musisz użyć ALTER TABLE. Komenda będzie wyglądać mniej więcej tak:

ALTER TABLE tablename MODIFY COLUMN columnname DOUBLE; 
+0

Spróbuję teraz, dzięki za szybki post. – Lolmewn