MariaDB ROW_COUNT() 函数使用指南

在 MariaDB 中,ROW_COUNT() 是一个内置函数,它返回由上一个更新、插入或删除语句的影响行数。

MariaDB ROW_COUNT() 语法

这里是 MariaDB ROW_COUNT() 函数的语法:

ROW_COUNT()

参数

MariaDB ROW_COUNT() 函数不需要任何参数。

返回值

MariaDB ROW_COUNT() 函数返回上一个 SQL 语句执行的受影响的行数。ROW_COUNT() 函数的执行逻辑如下:

  • 如果上一个语句是 DDL 语句,ROW_COUNT() 函数将返回 0。比如 CREATE TABLE, DROP TABLE 等。

  • 如果上一个语句是 UPDATE, INSERT, DELETE, ALTER TABLE 或者 LOAD DATA 语句,ROW_COUNT() 函数将返回受影响的行数。

  • 如果上一个语句是一个返回结果集的 SELECT 语句,ROW_COUNT() 函数将返回 -1。

  • 如果上一个语句不是一个返回结果集的 SELECT 语句,ROW_COUNT() 函数将返回受影响的行数。比如: SELECT * FROM t1 INTO OUTFILE 'file_name'

MariaDB ROW_COUNT() 例子

下面的示例展示了如何使用 ROW_COUNT() 函数。

首先,让我们创建一个表 test_row_count

CREATE TABLE test_row_count(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

让我们调用 ROW_COUNT() 函数:

SELECT ROW_COUNT();

输出:

+-------------+
| ROW_COUNT() |
+-------------+
|           0 |
+-------------+

由于上一个语句时 CREATE 语句,因此 ROW_COUNT() 返回了 0

让我们插入 2 行以供测试:

INSERT INTO test_row_count (id) VALUES (NULL), (NULL);

输出:

Query OK, 2 rows affected (0.014 sec)
Records: 2  Duplicates: 0  Warnings: 0

这里, 2 rows affected 告诉我们有 2 行受到了影响,即新增加的两行。让我们使用 ROW_COUNT() 函数看一下受影响的行数:

SELECT ROW_COUNT();

输出:

+-------------+
| ROW_COUNT() |
+-------------+
|           2 |
+-------------+

这里, ROW_COUNT() 函数返回的 2 与上面 INSERT 语句返回的 2 rows affected 是一致的。

让我们查询一下表中的数据:

SELECT * FROM test_row_count;

输出:

+----+
| id |
+----+
|  1 |
|  2 |
+----+

让我们使用 ROW_COUNT() 函数看一下受影响的行数:

SELECT ROW_COUNT();

输出:

+-------------+
| ROW_COUNT() |
+-------------+
|          -1 |
+-------------+

这里,ROW_COUNT() 函数返回了 -1

结论

在 MariaDB 中,ROW_COUNT() 是一个内置函数,它返回由上一个更新、插入或删除语句的影响行数。