عند استيراد قاعدة بيانات MySQL، قد تواجه الخطأ "1418 (HY000) في السطر 10185: لا تحتوي هذه الوظيفة على أي من البيانات المحددة أو NO SQL أو READS SQL DATA في إعلانها و تم تمكين التسجيل الثنائي (قد ترغب في استخدام متغير log_bin_trust_function_creators الأقل أمانًا)." يحدث هذا الخطأ عندما لم تقم بتحديد الطبيعة الحتمية لوظيفة داخل قاعدة البيانات.
لحل هذا الخطأ، يمكنك استخدام إحدى الطريقتين:
الطريقة الأولى: مؤقتًا تعطيل التسجيل الثنائي
SET GLOBAL log_bin_trust_function_creators = 1;
الطريقة 2: تكوين ملف mysql.ini
log_bin_trust_function_creators = 1;log_bin_trust_function_creators = 1;من خلال تعيين هذه القيمة على 1، فإنك تخفف من عملية التحقق من الوظائف غير الحتمية. يجب استخدام هذا الخيار بحذر لأنه قد يؤدي إلى تعريض سلامة بياناتك للخطر.
فهم الوظائف الحتمية
لتجنب هذا الخطأ في المستقبل، هناك نهج أفضل. هو استخدام الإعلانات الحتمية للوظائف المخزنة. تُعلم هذه الإعلانات MySQL ما إذا كانت الوظيفة تنتج دائمًا نفس النتيجة لنفس معلمات الإدخال. فيما يلي الإعلانات الحتمية المختلفة:
الحتمية:
الوظائف التي تنتج دائمًا نفس النتيجة لنفس معلمات الإدخال.
وظائف لا تنتج دائمًا نفس النتيجة لنفس معلمات الإدخال. إذا لم يتم التصريح عنها بشكل صريح، فإن إعدادات MySQL الافتراضية هي NOT DETERMINISTIC.
الوظائف التي تقرأ البيانات من قواعد البيانات فقط.
الوظائف التي لا تحتوي على أي عبارات SQL.
الوظائف التي تحتوي على تعليمات SQL ولكنها لا تقرأ البيانات ولا تكتبها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3