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

Prosedur tersimpan MySQL tidak menggunakan nama tabel sebagai parameter

SP tidak dapat dioptimalkan dengan nama tabel dinamis, begitu banyak DB, termasuk MySQL, tidak mengizinkan nama tabel ditentukan secara dinamis.

Salah satu caranya adalah dengan menggunakan SQL Dinamis.

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN serviceName VARCHAR(10),IN newsInfoTable VARCHAR(100))
BEGIN                  
    SET @sql = CONCAT('SELECT COUNT(*) FROM ',newsInfoTable,' WHERE newsServiceName=?;'); 
    PREPARE s1 from @sql;
    SET @paramA = serviceName;
    EXECUTE s1 USING @paramA;
END$$


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Database dunia MySQL Mencoba menghindari subquery

  2. Pernyataan IF di dalam klausa where dalam SQL

  3. Isi Array PHP dari While Loop

  4. Bagaimana cara membuat daftar kueri yang di-cache di MySQL? (Qcache_queries_in_cache)

  5. Bagaimana cara memperbaiki loop ini untuk menampilkan gambar dari database saya menggunakan bootstrap carousel