Mysql 通过JDBC执行INSERT IGNORE时获取重复计数

Mysql 通过JDBC执行INSERT IGNORE时获取重复计数,mysql,jdbc,insert,Mysql,Jdbc,Insert,在通过JDBC执行MySQL“INSERT IGNORE”语句时,是否可能获得重复计数 例如,当我在mysql命令行上执行INSERT IGNORE语句时,有重复的语句 查询正常,0行受影响(0.02秒) 记录:1个重复:1个警告:0 注意其中的“Duplicates:1”,表示存在被忽略的重复项 在通过JDBC执行查询时,是否可能获得相同的信息 谢谢 我相信您可以通过在插入后发出SHOW WARNINGS来检索此信息 您可以通过JDBC获得受影响的行值。只需从插入的行数中减去它 请记住,受影响

在通过JDBC执行MySQL“INSERT IGNORE”语句时,是否可能获得重复计数

例如,当我在mysql命令行上执行INSERT IGNORE语句时,有重复的语句

查询正常,0行受影响(0.02秒) 记录:1个重复:1个警告:0

注意其中的“Duplicates:1”,表示存在被忽略的重复项

在通过JDBC执行查询时,是否可能获得相同的信息


谢谢

我相信您可以通过在插入后发出
SHOW WARNINGS
来检索此信息


您可以通过JDBC获得受影响的
值。只需从插入的行数中减去它

请记住,
受影响的行
还包括受查询间接影响的行。因此,如果有任何触发器影响其他行,
受影响的行
也将包括这些行

请参阅:()

您可以使用ROW_COUNT()和FOUND_ROWS()函数来确定执行插入忽略时插入的行数和重复的行数

例如:

SELECT ROW_COUNT(), FOUND_ROWS()
    INTO myRowCount, myFoundRows;
myInsertedRows = myRowCount;
myDuplicateRows =  myFoundRows - myInsertedRows;
COMMIT;


我不相信重复数据存储在查询中。最接近的方法是在
插入
之前使用
WHERE unique values
运行
选择
,获取行数和重复项。找到如何检索重复项的值了吗?插入忽略在尝试插入重复值时不会产生警告。正如我之前所写的,如果我从SQL控制台运行它,它会生成如下内容:查询OK,0行受影响(0.02秒)记录:1重复:1警告:0所以“警告:0”表示没有警告。在您的示例中,“插入忽略”在哪里?