Zag*_*rug 68 mysql warnings twilio
在更改MySql列的数据类型以存储Twilio调用 ID(34个char字符串)之后,我尝试手动更改该列中的数据:
update calls
set incoming_Cid='CA9321a83241035b4c3d3e7a4f7aa6970d'
where id='1';
Run Code Online (Sandbox Code Playgroud)
但是,由于列的数据类型被正确修改,我得到一个没有意义的错误?
| Level ||| Code | Message
| Warning | 1265 | Data truncated for column 'incoming_Cid' at row 1
pet*_*erm 72
您的问题是,您的incoming_Cid
列定义为CHAR(1)
应该的时间CHAR(34)
.
要解决此问题,只需发出此命令即可将列的长度从1更改为34
ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34);
Run Code Online (Sandbox Code Playgroud)
这是SQLFiddle演示
发表此声明:
ALTER TABLES call MODIFY incoming_Cid CHAR;
Run Code Online (Sandbox Code Playgroud)
...你省略了长度参数.因此,您的查询相当于:
ALTER TABLE calls MODIFY incoming_Cid CHAR(1);
Run Code Online (Sandbox Code Playgroud)
您必须为大于1的大小指定字段大小:
ALTER TABLE calls MODIFY incoming_Cid CHAR(34);
Run Code Online (Sandbox Code Playgroud)
但是,由于列的数据类型被正确修改,我得到一个没有意义的错误?
Run Code Online (Sandbox Code Playgroud)| Level | Code | Msg | Warn | 12 | Data truncated for column 'incoming_Cid' at row 1
当您执行以下操作时,通常可以收到此消息:
REPLACE INTO table2 (SELECT * FROM table1);
Run Code Online (Sandbox Code Playgroud)
在我们的案例中导致以下错误:
SQL Exception: Data truncated for column 'level' at row 1
Run Code Online (Sandbox Code Playgroud)
问题结果是列错位导致tinyint
尝试存储在datetime
字段中,反之亦然.