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

MySQL - Abaikan kueri jika tabel tidak ada

Saya harus setuju bahwa persyaratan Anda tampaknya cukup aneh. Bagaimanapun, kueri Anda tidak berfungsi, karena MySQL (dan saya yakin semua DBMS lainnya juga) pertama-tama mengevaluasi kueri untuk memeriksa kesalahan sintaks dan seterusnya...dan untuk tabel yang ada.

Entah Anda hanya membuat beberapa kueri ini dalam kode aplikasi Anda atau Anda membuat prosedur tersimpan untuk mendapatkan data menggunakan pernyataan yang disiapkan. Kode untuk ini akan terlihat seperti ini:

DELIMITER $$
CREATE PROCEDURE get_my_data()
BEGIN
SET @table_name = '';
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE SCHEMA_NAME = 'your_db_name' 
           AND TABLE_NAME = 'your_table_name')
THEN SET @table_name = 'tableA';
ELSE SET @table_name = 'tableB';
END IF;

SET @sql = CONCAT('SELECT COUNT(*) FROM ', @table_name, ';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END $$
DELIMITER ;

Setelah dibuat, Anda kemudian akan menjalankan prosedur dengan

CALL get_my_data();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pencacahan MYSQL:@rownum, catatan ganjil dan genap

  2. Keluaran UTF-8 dengan CakePHP

  3. Bagaimana cara menambahkan kotak teks dinamis (baris) dan menyimpan ke database menggunakan PHP

  4. Temukan gambar serupa di (murni) PHP / MySQL

  5. Pengikatan tabel EF Core ke Mysql