سلوك إدراج MySQL: الاقتطاع مقابل الخطأ
يعرض MySQL سلوكيات مختلفة عند محاولة إدراج بيانات تتجاوز الحد الأقصى لطول العمود: اقتطاع أو خطأ . في هذا السيناريو، نهدف إلى تعديل مثيل MySQL لاقتطاع البيانات بدلاً من ظهور خطأ.
الحل: تعطيل STRICT_TRANS_TABLES وSTRICT_ALL_TABLES
افتراضيًا، يفرض MySQL قيودًا صارمة الوضع، والذي يتضمن الإعدادات STRICT_TRANS_TABLES وSTRICT_ALL_TABLES. تحظر هذه الإعدادات القيم غير الصالحة أو المفقودة في عمليات تغيير البيانات مثل INSERT أو UPDATE.
للسماح بالاقتطاع التلقائي للسلاسل المدرجة، يمكننا تعطيل STRICT_TRANS_TABLES وSTRICT_ALL_TABLES. وإليك كيفية القيام بذلك:
SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;
شرح:
من خلال تعطيل هذه الإعدادات، نقوم بإزالة القيود المفروضة على القيم غير الصالحة أو المفقودة. يسمح هذا لـ MySQL باقتطاع البيانات التي تتجاوز الحد الأقصى لطول العمود بصمت، مع الالتزام بالسلوك الافتراضي للاقتطاع.
المرجع:
أوضاع MySQL Server SQL: https:/ /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3