2013-08-06 13 views
39

Po zmianie typu danych kolumny MySQL w celu przechowywania Twilio call identyfikatory (34 char strings), staram się ręcznie zmienić dane w tej kolumnie z:Dane obcięte dla kolumny?

update calls 
    set incoming_Cid='CA9321a83241035b4c3d3e7a4f7aa6970d' 
where id='1'; 

Jednakże pojawia się błąd, który nie robi” Czy sensowne jest widzenie, ponieważ typ danych kolumny został poprawnie zmodyfikowany?

| Level ||| Code | Message | Warning | 1265 | Data truncated for column 'incoming_Cid' at row 1

+1

Jaki jest dokładny typ danych po modyfikacji? –

+0

Czy jesteś pewien, że kolumna określiła wystarczająco dużo miejsca na tekst o tej długości? –

+0

'ALTER TABLES wywołuje MODIFY przychodzące_CIEŃ STRING;' jest tym, co zrobiłem. – Zagstrug

Odpowiedz

35

Twoim problemem jest to, że w tej chwili Twój kolumna incoming_Cid zdefiniowany jako CHAR(1) gdy powinna być CHAR(34).

Aby rozwiązać ten problem wystarczy wydać polecenie, aby zmienić długość kolumn od 1 do 34

ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34); 

Oto SQLFiddle demo

6

Wydając to oświadczenie:

ALTER TABLES call MODIFY incoming_Cid CHAR; 

... pominięto parametr długości. Zapytanie było zatem równoważne:

ALTER TABLE calls MODIFY incoming_Cid CHAR(1); 

Musisz określić rozmiar pola do rozmiarów większych niż 1:

ALTER TABLE calls MODIFY incoming_Cid CHAR(34); 
2

However I get an error which doesn't make sense seeing as the column's data type was properly modified?

| Level | Code | Msg | Warn | 12 | Data truncated for column 'incoming_Cid' at row 1 

często można dostać tę wiadomość, gdy robisz coś jak poniżej :

REPLACE INTO table2 (SELECT * FROM table1); 

doprowadziło w naszych sprawy w następujący błąd:

SQL Exception: Data truncated for column 'level' at row 1 

problem okazał się kolumna przesunięcie, które doprowadziły do ​​tinyint próby być przechowywane w polu datetime lub vice versa.

2

Miałem ten sam problem z powodu kolumny tabeli, która została zdefiniowana jako ENUM ("x", "y", "z"), a później próbowałem zapisać wartość "a" w tej kolumnie, Mam wspomniany błąd.

Rozwiązano, zmieniając definicję kolumny stołu i wartość dodaną "a" w zestawie wyliczającym.

Powiązane problemy