我正在从 perl 插入 mysql 数据库。第一次插入后出现重复错误。这是我用于插入的代码。我正在从 json 响应中提取一个 id。我在代码下方输出了我收到的内容
foreach my $listing(@{$json_text->{listings}})
{
my $id = $listing->{id};
print "\nid = $id \n";
# DO THE INSERT
my $query_insert = "INSERT INTO calendar (id) VALUES ($id)";
print "query insert = $query_insert \n";
my $query = $db->do($query_insert);
print "query = $query \n";
} #end foreach
这是我收到的输出。 (返回没有正确复制。所以下面看起来不对,但正确的数据在那里)。这就像 133 我的 $query = $db->do($query_insert);
ID = 2576246314 查询插入=插入日历(id)值(2576246314) 查询= 1
ID = 2576246678 查询插入=插入日历(id)值(2576246678) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行的键“PRIMARY”重复条目“2147483647”。 查询 =
ID = 2576246781 查询插入=插入日历(id)值(2576246781) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行的键“PRIMARY”重复条目“2147483647”。 查询 =
ID = 2576247610 查询插入=插入日历(id)值(2576247610) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行的键“PRIMARY”重复条目“2147483647”。 查询 =
ID = 2576247737 查询插入=插入日历(id)值(2576247737) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行的键“PRIMARY”重复条目“2147483647”。 查询 =
ID = 2576247756 查询插入=插入日历(id)值(2576247756) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行的键“PRIMARY”重复条目“2147483647”。 查询 =
ID = 2576247766 查询插入=插入日历(id)值(2576247766) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
ID = 2576248369 查询插入=插入日历(id)值(2576248369) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
ID = 2576248388 查询插入=插入日历(id)值(2576248388) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
ID = 2576248660 查询插入=插入日历(id)值(2576248660) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
ID = 2576249706 查询插入=插入日历(id)值(2576249706) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
id = 2576250254 查询插入=插入日历(id)值(2576250254) DBD::mysql::db 执行失败:在 ./calendar_run.pl 第 133 行,键“PRIMARY”的重复条目“2147483647”。 查询 =
最佳答案
听起来 id 的类型太短了。该值 (2147683647) 是带符号的最大 32 位整数值。尝试为 id 使用更大的尺寸。
关于mysql - 从 perl 插入 mysql 时的 dup 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6091980/