在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 ... VALUESINSERT ... 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/

10-17 03:08