"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > \"1418 (HY000) को कैसे हल करें इस फ़ंक्शन की घोषणा में कोई भी नियतात्मक, कोई SQL नहीं है, या SQL डेटा पढ़ता है और बाइनरी लॉगिंग सक्षम है\" MySQL में त्रुटि?

\"1418 (HY000) को कैसे हल करें इस फ़ंक्शन की घोषणा में कोई भी नियतात्मक, कोई SQL नहीं है, या SQL डेटा पढ़ता है और बाइनरी लॉगिंग सक्षम है\" MySQL में त्रुटि?

2024-11-16 को प्रकाशित
ब्राउज़ करें:840

How to Solve the \

MySQL डेटाबेस आयात करते समय, आपको लाइन 10185 पर त्रुटि "1418 (HY000) का सामना करना पड़ सकता है: इस फ़ंक्शन की घोषणा में कोई भी DETERMINISTIC, NO SQL, या READS SQL डेटा नहीं है और बाइनरी लॉगिंग सक्षम है (आप हो सकता है कम सुरक्षित log_bin_trust_function_creator वैरिएबल का उपयोग करना चाहें)।" यह त्रुटि तब होती है जब आपने डेटाबेस के भीतर किसी फ़ंक्शन की नियतात्मक प्रकृति निर्दिष्ट नहीं की है।

इस त्रुटि को हल करने के लिए, आप दो तरीकों में से एक का उपयोग कर सकते हैं:

विधि 1: अस्थायी रूप से बाइनरी लॉगिंग अक्षम करें

SET GLOBAL log_bin_trust_function_creators = 1;

विधि 2: mysql.ini फ़ाइल को कॉन्फ़िगर करें

log_bin_trust_function_creators = 1;

इस मान को 1 पर सेट करके, आप आराम कर रहे हैं गैर-नियतात्मक कार्यों की जाँच करना। इस विकल्प का उपयोग सावधानी से किया जाना चाहिए क्योंकि यह संभावित रूप से आपके डेटा की अखंडता से समझौता कर सकता है।

नियतात्मक कार्यों को समझना

भविष्य में इस त्रुटि से बचने के लिए, एक बेहतर दृष्टिकोण संग्रहीत कार्यों के लिए नियतात्मक घोषणाओं का उपयोग करना है। ये घोषणाएँ MySQL को सूचित करती हैं कि क्या फ़ंक्शन हमेशा समान इनपुट पैरामीटर के लिए समान परिणाम उत्पन्न करता है। यहां विभिन्न नियतात्मक घोषणाएं दी गई हैं:

नियतात्मक:

  • फ़ंक्शन जो हमेशा समान इनपुट पैरामीटर के लिए समान परिणाम उत्पन्न करते हैं।

नहीं नियतात्मक:

  • फ़ंक्शन जो हमेशा समान इनपुट पैरामीटर के लिए समान परिणाम नहीं देते हैं। यदि स्पष्ट रूप से घोषित नहीं किया गया है, तो MySQL डिफ़ॉल्ट रूप से NOT DETERMINISTIC है।

नहीं SQL:

    फ़ंक्शन जिनमें कोई SQL स्टेटमेंट नहीं है।

इसमें SQL शामिल है:

    ऐसे फ़ंक्शंस जिनमें SQL निर्देश होते हैं लेकिन न तो पढ़ते हैं और न ही लिखते हैं डेटा।

सही घोषणा का चयन करना

किसी फ़ंक्शन के लिए सही घोषणा का चयन करना उसके व्यवहार पर निर्भर करता है। यदि फ़ंक्शन का आउटपुट डेटाबेस के बाहरी कारकों पर निर्भर करता है, जैसे कि वर्तमान समय या यादृच्छिक संख्या जनरेटर, तो इसे NOT DETERMINISTIC घोषित किया जाना चाहिए। यदि फ़ंक्शन केवल डेटा पढ़ता है, तो इसे रीड्स SQL ​​डेटा के रूप में घोषित किया जा सकता है। यदि फ़ंक्शन में कोई SQL कथन नहीं है, तो इसे NO SQL के रूप में घोषित किया जा सकता है।
    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3