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

Cara menggunakan label goto di fungsi tersimpan MySQL

Ada kasus GOTO yang tidak dapat diimplementasikan di MySQL, seperti melompat mundur dalam kode (dan hal yang baik juga).

Tetapi untuk sesuatu seperti contoh Anda di mana Anda ingin melompat keluar dari segalanya ke serangkaian pernyataan terakhir, Anda dapat membuat blok BEGIN / END di sekitar kode untuk melompat keluar dari:

aBlock:BEGIN
    if (action = 'D') then
        if (rowcount > 0) then
            DELETE FROM datatable WHERE id = 2;      
        else
           SET p=CONCAT('Can not delete',@b);
           LEAVE aBlock;
        end if;
    end if;
END aBlock;
return 0;

Karena kode Anda hanyalah beberapa IF bersarang, konstruksi tidak diperlukan dalam kode yang diberikan. Tetapi lebih masuk akal untuk LOOP/WHILE/REPEAT untuk menghindari beberapa pernyataan RETURN dari dalam loop dan untuk mengkonsolidasikan pemrosesan akhir (sedikit seperti COBA / AKHIRNYA).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mengimplementasikan perintah sql yang rumit

  2. Apa Option=N di string koneksi MySQL ODBC?

  3. Masalah perbandingan tanggal MySQL

  4. Fungsi tidak terdefinisi mysql_connect()

  5. menggabungkan kueri mysql DAN ATAU di Codeigniter