Outdated Version
You are viewing an older version of this section. View current production version.
ROW_COUNT
Returns the number of rows affected by the last INSERT
, UPDATE
, or DELETE
command. It can be used from client applications, stored procedures, and the
command line.
Syntax
ROW_COUNT()
Arguments
- None.
Return Type
int
Examples
The following shows how to use ROW_COUNT()
in a query after running an
INSERT
:
DROP TABLE IF EXISTS account;
CREATE TABLE account(id int, amount decimal(10,2));
INSERT account VALUES(1, 10.00), (2, 30.00);
SELECT row_count();
Results:
+-------------+
| row_count() |
+-------------+
| 2 |
+-------------+
This example shows how an application can raise an error if a ROW_COUNT()
result is
different than expected after a DELETE
:
DELIMITER //
CREATE OR REPLACE PROCEDURE delete_account(_id int) RETURNS int AS
DECLARE _row_count int = -1;
BEGIN
DELETE FROM account WHERE account.id = _id;
_row_count = row_count();
IF _row_count = 0 THEN
RAISE user_exception(CONCAT("No rows deleted for account ", _id));
END IF;
RETURN _row_count;
END //
DELIMITER ;
Example use:
ECHO delete_account(3);
ERROR 2242 (HY000): Unhandled exception
Type: ER_USER_RAISE
Message: No rows deleted for account 3
Callstack:
#0 Line 7 in `db1`.`delete_account`
ECHO delete_account(1);
+--------+
| RESULT |
+--------+
| 1 |
+--------+