在mysql中,创建一个表:
CREATE TABLE fb_group_feed (
Post_ID varchar(64),
Permalink varchar(128),
Create_time varchar(32),
Updated_time varchar(32),
Author varchar(32),
Author_ID bigint,
Message text,
Link varchar(1024),
Likes int,
Comments int,
group_ID bigint,
foreign key(group_ID) references fb_group_info(ID)
)
在此表中插入一行数据时,出现错误:
INSERT INTO fb_group_feed VALUES (
'1610393525875114_1842755835972214','https://www.facebook.com/groups/1610393525875114/permalink/1842755835972214/',
'2017-01-22T17:12:41+0000','2017-01-23T00:45:16+0000','Chibura Hakkai',457297014658600,
'Pretty hands he has... credit Wilma Alberti',
'https://www.facebook.com/photo.php?fbid=466756323712669&set=gm.1842755835972214&type=3',
175,7,1610393525875114)
它错误:
Error 1406(22001): "Data too long for column 'Post_ID' at row 1")
但是我已经设置了'Post_ID'varchar(64),我认为它已经足够长了。
最佳答案
您应该做的第一件事是describe fb_group_feed
,它将告诉您列的当前顺序,如果您未明确指定这些列,则这是用于插入的顺序。根据doco:
如果未为INSERT ... VALUES
或INSERT ... SELECT
指定列名列表,则表中每一列的值必须由VALUES
列表或SELECT
语句提供。如果您不知道表中各列的顺序,请使用DESCRIBE tbl_name
进行查找。
另外(更安全)是使用显式形式:
INSERT INTO fb_group_feed (
Post_ID,
Permalink,
<other columns>
) VALUES (
'1610393525875114_1842755835972214',
'https://www.facebook.com/groups/blah/blah/blah/',
<other values>
)
关于mysql - mysql:插入操作错误“数据太长”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41797899/