4

通过 JDBC 执行 MySQL "INSERT IGNORE" 语句时是否可以获得重复计数?

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

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

注意它在哪里说“重复:1”,表示有重复被忽略。

通过 JDBC 执行查询时是否可以获得相同的信息?

谢谢。

4

3 回答 3

1

在执行 INSERT IGNORE 时,您可以使用 ROW_COUNT() 和 FOUND_ROWS() 函数来确定插入行数和重复行数。

例如 :

SELECT ROW_COUNT(), FOUND_ROWS()
    INTO myRowCount, myFoundRows;
myInsertedRows = myRowCount;
myDuplicateRows =  myFoundRows - myInsertedRows;
COMMIT;
于 2014-06-25T23:49:40.910 回答
1

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

http://dev.mysql.com/doc/refman/5.0/en/show-warnings.html

于 2012-04-14T02:50:15.240 回答
0

您可以rows affected通过 JDBC 获取值。只需从您插入的行数中减去它。

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

见:http ://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#executeUpdate ()

于 2012-04-14T03:14:42.283 回答