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 को सूचित करती हैं कि क्या फ़ंक्शन हमेशा समान इनपुट पैरामीटर के लिए समान परिणाम उत्पन्न करता है। यहां विभिन्न नियतात्मक घोषणाएं दी गई हैं:
नियतात्मक:
नहीं नियतात्मक:
नहीं SQL:
इसमें SQL शामिल है:
सही घोषणा का चयन करना
किसी फ़ंक्शन के लिए सही घोषणा का चयन करना उसके व्यवहार पर निर्भर करता है। यदि फ़ंक्शन का आउटपुट डेटाबेस के बाहरी कारकों पर निर्भर करता है, जैसे कि वर्तमान समय या यादृच्छिक संख्या जनरेटर, तो इसे NOT DETERMINISTIC घोषित किया जाना चाहिए। यदि फ़ंक्शन केवल डेटा पढ़ता है, तो इसे रीड्स SQL डेटा के रूप में घोषित किया जा सकता है। यदि फ़ंक्शन में कोई SQL कथन नहीं है, तो इसे NO SQL के रूप में घोषित किया जा सकता है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3