Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa prosedur tersimpan saya menimbulkan kesalahan 'Tidak ada data - baris nol diambil, dipilih, atau diproses' ketika saya memiliki WHERE dalam pernyataan?

anda harus mendefinisikan penangan lanjutan:

DROP PROCEDURE IF EXISTS Test;
DELIMITER //

CREATE PROCEDURE Test()
BEGIN

    -- Our columns
    DECLARE name VARCHAR(45);
    DECLARE id INT DEFAULT -1;
    DECLARE done INT DEFAULT 0;
    -- Our cursor
    DECLARE cur CURSOR FOR SELECT name, id FROM MyTable WHERE id > 3;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
    DROP TEMPORARY TABLE IF EXISTS TempTest;
    CREATE TEMPORARY TABLE TempTest
    (
    name VARCHAR(45) NOT NULL,
    id INT NOT NULL
    );

    -- Open our cursor
    open cur;

    -- Start our for loop
    forLoop: LOOP

    -- Get the row
    FETCH cur INTO name, id;
     IF done = 1 THEN
        LEAVE forLoop;
    END IF;
    INSERT INTO TempTest (name, id)
    VALUES ( name, id);

    END LOOP forLoop;

    -- Close the cursor
    CLOSE cur;

    -- NOW GET THE RESULTS
    SELECT * FROM TempTest;

END; //

DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungkan beberapa tabel di database yang berbeda? MySql

  2. Pernyataan KASUS SQL

  3. MYSQL, PHP Sisipkan ke Beberapa Tabel di Database

  4. Aplikasi Web PHP:pertanyaan praktik terbaik desain database mysql

  5. Nilai default tidak valid untuk bidang stempel waktu 'buat_tanggal'