MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB ROW_COUNT() Dijelaskan

Di MariaDB, ROW_COUNT() adalah fungsi bawaan yang mengembalikan jumlah baris yang diperbarui, disisipkan, atau dihapus oleh pernyataan sebelumnya.

Nilai yang dikembalikan oleh ROW_COUNT() sama dengan jumlah baris yang mysql tampilan klien dan nilai dari mysql_affected_rows() Fungsi C API.

Sintaks

Sintaksnya seperti ini:

ROW_COUNT()

Tidak ada argumen yang diperlukan, atau diterima.

Contoh

Pernyataan DDL

Untuk pernyataan DDL (termasuk TRUNCATE ) dan untuk pernyataan lain yang tidak mengembalikan kumpulan hasil apa pun (seperti USE , DO , SIGNAL atau DEALLOCATE PREPARE ), ROW_COUNT() fungsi mengembalikan 0 .

Mari kita buat tabel:

CREATE OR REPLACE TABLE guest (
  guest_id INT NOT NULL AUTO_INCREMENT,
  guest_name VARCHAR(255) NOT NULL,
  PRIMARY KEY (guest_id)
);

Hasil:

Query OK, 0 rows affected (0.046 sec)

Dan jalankan ROW_COUNT() :

SELECT ROW_COUNT();

Hasil:

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

Seperti yang diharapkan, 0 dikembalikan, karena nol baris terpengaruh.

Pernyataan DML

Untuk pernyataan DML selain SELECT dan untuk ALTER TABLE , ROW_COUNT() fungsi mengembalikan jumlah baris yang terpengaruh.

Berikut adalah beberapa contohnya.

Sisipkan Data

Sekarang mari kita masukkan beberapa baris:

INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');

Hasil:

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Homer');
Query OK, 1 row affected (0.037 sec)

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Bart');
Query OK, 1 row affected (0.001 sec)

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Marge');
Query OK, 1 row affected (0.002 sec)

Setiap pernyataan mengakibatkan satu baris terpengaruh.

Dan mari kita jalankan ROW_COUNT() lagi:

SELECT ROW_COUNT();

Hasil:

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

Ini mengembalikan 1 karena itulah berapa banyak baris yang terpengaruh dalam pernyataan terakhir. Meskipun kami memengaruhi tiga baris, dibutuhkan tiga pernyataan untuk melakukannya (setiap pernyataan hanya memasukkan satu baris, dan ROW_COUNT() hanya melaporkan pada pernyataan terakhir).

Perbarui Data

Sekarang mari kita perbarui data di ketiga baris:

UPDATE guest
SET guest_name = 'Homer';

Hasil:

Query OK, 2 rows affected (0.008 sec)
Rows matched: 3  Changed: 2  Warnings: 0

mariadb saya klien memberi tahu saya bahwa meskipun tiga baris cocok dengan kriteria, hanya dua baris yang diubah. Ini karena baris pertama sudah berisi Homer , yang juga kami coba perbarui.

Mari kita lihat apa ROW_COUNT() kembali:

SELECT ROW_COUNT();

Hasil:

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

Seperti yang diharapkan, ia mengembalikan 2 , karena itulah berapa banyak baris yang benar-benar diperbarui.

Pernyataan Kumpulan Hasil

Untuk pernyataan yang mengembalikan kumpulan hasil (seperti SELECT , SHOW , DESC atau HELP ), ROW_COUNT() fungsi mengembalikan -1 , bahkan ketika kumpulan hasil kosong. Hal ini juga berlaku untuk pernyataan administratif, seperti OPTIMIZE .

Contoh:

SELECT * FROM guest;

Hasil:

+----------+------------+
| guest_id | guest_name |
+----------+------------+
|        1 | Homer      |
|        2 | Homer      |
|        3 | Homer      |
+----------+------------+
3 rows in set (0.000 sec)

Sekarang panggil ROW_COUNT() lagi:

SELECT ROW_COUNT();

Hasil:

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

Kunci &Pemicu Asing

Perhatikan bahwa ROW_COUNT() tidak memperhitungkan baris akun yang tidak langsung dihapus/diperbarui oleh pernyataan terakhir. Ini berarti bahwa baris yang dihapus oleh kunci asing atau pemicu tidak dihitung.

Informasi Lebih Lanjut

Lihat dokumentasi MariaDB untuk detail lebih lanjut dan beberapa hal lain yang harus diperhatikan saat menggunakan fungsi ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagian 1:Klasifikasi Gambar dengan Server MariaDB dan TensorFlow – Gambaran Umum

  2. Bagaimana FROM_DAYS() Bekerja di MariaDB

  3. Perbaiki "ERROR 1250 (42000):Tabel '...' dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER" di MariaDB

  4. 4 Cara Memeriksa Tipe Data Kolom di MariaDB

  5. Menerapkan MySQL Galera Cluster 4.0 ke Amazon AWS EC2