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

@ simbol dalam prosedur tersimpan?

@variable sintaks di MySQL menunjukkan variabel sesi yang ditentukan pengguna. Anda dapat mengatur variabel pengguna ini di luar prosedur tersimpan, tetapi Anda juga dapat mengaturnya di dalam prosedur tersimpan, dan efeknya adalah variabel mempertahankan nilai setelah panggilan prosedur Anda kembali.

Jadi dalam contoh Anda, berikut ini juga akan melakukan hal yang sama:

CREATE PROCEDURE emp_count_2()
BEGIN
 SELECT COUNT(*) INTO @empCount FROM Employee;
END

CALL emp_count_2(); /* sets @empCount as a side-effect */
SELECT @empCount;

Beberapa sesi boleh menyetel variabel pengguna dengan cara ini secara bersamaan, karena variabel pengguna dicakup dalam satu sesi, dan sesi bersamaan mungkin memiliki variabel dengan nama yang sama, tetapi dengan nilai yang berbeda.

Sintaks variabel tanpa awalan @ adalah untuk variabel lokal ke prosedur, baik parameter prosedur, atau variabel lokal lain yang dideklarasikan dengan MENYATAKAN dalam badan prosedur.

Penggunaan yang Anda miliki ini, meneruskan variabel pengguna sebagai parameter dan menetapkannya di badan prosedur, berguna jika Anda ingin memanggil prosedur beberapa kali dan menyimpan hasilnya dalam variabel pengguna yang terpisah. Jika tidak, setiap panggilan ke prosedur akan menimpa nilai sebelumnya dalam variabel pengguna @empCount untuk sesi saat 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. Pernyataan MySQL membutuhkan waktu lebih dari satu menit untuk dieksekusi

  2. Memeriksa konflik rentang tanggal di MySQL

  3. Bandingkan baris dalam tabel yang sama di mysql

  4. MySQL - Kelompokkan berdasarkan dengan Pesanan oleh DESC

  5. Cara memisahkan DATE dan TIME dari DATETIME di MySQL