Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL - यदि तालिका मौजूद नहीं है तो क्वेरी पर ध्यान न दें

मुझे सहमत होना चाहिए कि आपकी आवश्यकता काफी अजीब लगती है। वैसे भी, आपकी क्वेरी काम नहीं करती है, क्योंकि MySQL (और मैं अन्य सभी डीबीएमएस भी शर्त लगाता हूं) पहले सिंटैक्स त्रुटियों की जांच करने के लिए क्वेरी का मूल्यांकन करता है और इसी तरह ... और मौजूदा तालिकाओं के लिए।

या तो आप बस अपने आवेदन कोड में यह एकाधिक प्रश्न बनाते हैं या आप तैयार किए गए बयानों का उपयोग करके डेटा प्राप्त करने के लिए एक संग्रहीत प्रक्रिया बनाते हैं। इसके लिए कोड कुछ इस तरह दिखेगा:

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 ;

एक बार बनाने के बाद आप इस प्रक्रिया को

. के साथ निष्पादित करेंगे
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. बड़ी sql फ़ाइल django आयात करें

  2. पीडीओ और कैशिंग, इसे डेटाबेस क्लास में कैसे कार्यान्वित करें?

  3. सिम्फनी 1.4 प्रोपेल:बिल्ड-ऑल मैसकल 5.5 पर काम नहीं कर रहा है

  4. MySQL नेस्टेड चयन क्वेरी?

  5. डेटाबेस से एकाधिक ड्रॉपडाउन सूची भरने के लिए jQuery