【问题标题】:MySQL Error - understanding itMySQL 错误 - 理解它
【发布时间】:2023-11-01 10:45:02
【问题描述】:

有没有人见过这种错误以及它的含义?

我有一个存储过程,它只是在 502 条记录中运行游标,当它通过循环时,插入到表中,本质上是复制和粘贴,但它只输入 239 条记录,我得到这个错误

1265 Data truncated for column 'v_tagMemberSF' at row 5 
 1265 Data truncated for column 'v_tagMemberSF' at row 6 
 1265 Data truncated for column 'v_tagMemberSF' at row 7
 1265 Data truncated for column 'v_tagMemberSF' at row 10 
 1265 Data truncated for column 'v_tagMemberSF' at row 11 
 1265 Data truncated for column 'v_tagMemberSF' at row 12 
 1265 Data truncated for column 'v_tagMemberSF' at row 13 
 1265 Data truncated for column 'v_tagMemberSF' at row 14

带有光标的存储过程是

OPEN cur1;

    -- Start the Loop --
    dataSetLoop: LOOP

    -- get the values of each column into our variables declared in stored procedure

            FETCH cur1 INTO v_dateTime, v_val, v_numIndex, v_tagName, v_tagIndex, v_tagMemberSF, v_tagMemberMinVal, v_tagMemberMaxVal;

            if v_tagMemberSF = NULL then
            SET v_tagMemberSF = 1;
            END IF;

            -- Check if v_val is null first --
            INSERT INTO new_tempdata.looper (incremented, TagNameInserted) VALUES (v_dateTime, v_tagName);
            COMMIT;
            IF done THEN
                LEAVE dataSetLoop;
            END IF;


        END LOOP dataSetLoop;

    CLOSE cur1;

INSERT INTO new_tempdata.looper (incremented, TagNameInserted) Values (123456789,'ID29SP');

END

有人知道这可能会做什么吗?

【问题讨论】:

    标签: mysql stored-procedures insert cursor truncate


    【解决方案1】:

    此错误意味着您的 new_tempdata.looper 表无法存储您尝试插入的数据。检查字段incrementedTagNameInserted的长度,必须与v_dateTimev_tagName相同;

    【讨论】: