Данные усечены для столбца?
после изменения типа данных столбца MySql для хранения Twilio вызов ids (34 строки символов), я пытаюсь вручную изменить данные в этом столбце с помощью:
update calls
set incoming_Cid='CA9321a83241035b4c3d3e7a4f7aa6970d'
where id='1';
однако я получаю ошибку, которая не имеет смысла, поскольку тип данных столбца был правильно изменен?
| Level ||| Code | Message
| Warning | 1265 | Data truncated for column 'incoming_Cid' at row 1
4 ответов
ваша проблема в том, что на данный момент ваш incoming_Cid
столбец, определенный как CHAR(1)
, когда он должен быть!--3-->.
чтобы исправить это, просто выполните эту команду, чтобы изменить длину столбцов от 1 до 34
ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34);
здесь SQLFiddle демо
выдав это заявление:
ALTER TABLES call MODIFY incoming_Cid CHAR;
... параметр length опущен. Поэтому ваш запрос был эквивалентен:
ALTER TABLE calls MODIFY incoming_Cid CHAR(1);
необходимо указать размер поля для размеров больше 1:
ALTER TABLE calls MODIFY incoming_Cid CHAR(34);
однако я получаю ошибку, которая не имеет смысла, поскольку тип данных столбца был правильно изменен?
| Level | Code | Msg | Warn | 12 | Data truncated for column 'incoming_Cid' at row 1
вы часто можете получить это сообщение, когда вы делаете что-то вроде следующего:
REPLACE INTO table2 (SELECT * FROM table1);
привело в нашем случае к следующей ошибке:
SQL Exception: Data truncated for column 'level' at row 1
проблема оказалась несоосностью столбцов, что привело к tinyint
пытается храниться в
У меня была та же проблема из-за столбца таблицы, который был определен как перечисление ("x", "y", "z"), и позже я пытался сохранить значение " a " в этот столбец, таким образом, я получил упомянутую ошибку.
решено путем изменения определения столбца таблицы и добавленного значения " a " в набор перечислений.