Menetapkan Global sql_mode dalam MySQL
Dalam MySQL, sql_mode mentakrifkan kelakuan lalai pelayan pangkalan data. Menetapkan sql_mode secara global menggunakan mod yang dikonfigurasikan pada semua sambungan dan sesi berikutnya. Ini berbeza daripada menetapkan sql_mode setiap sesi, yang hanya mempengaruhi sambungan semasa.
Apabila menghadapi ralat semasa menetapkan sql_mode secara global, adalah penting untuk menyemak sintaks. Cara yang betul untuk menetapkan berbilang mod dalam konteks global ialah:
SET GLOBAL sql_mode = 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLE', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'
Kelebihan Mod Global dan Sesi
Global Mod:
Mod Sesi:
Tetapan Pilihan
Tetapan pilihan bergantung pada aplikasi dan persekitaran. Jika tingkah laku yang konsisten diingini secara menyeluruh, tetapan sql_mode secara global adalah disyorkan. Walau bagaimanapun, jika keperluan sesi tertentu timbul, mod sesi menyediakan fleksibiliti yang diperlukan.
Menetapkan Global sql_mode Secara Kekal
Untuk menjadikan perubahan sql_mode global kekal, ia perlu dikonfigurasikan dalam fail konfigurasi MySQL (cth., /etc/mysql/my.cnf pada Linux). Dalam bahagian [mysqld], tambah atau ubah suai pilihan sql_mode. Contohnya:
[mysqld] sql_mode = NO_BACKSLASH_ESCAPES, STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION
Untuk versi MySQL yang lebih baharu (cth., 5.7.8 atau ke atas), tetapan sql_mode mungkin memerlukan tanda sempang dan bukannya garis bawah dan petikan berganda:
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
Sentiasa rujuk dokumentasi MySQL untuk sintaks yang sesuai berdasarkan versi MySQL yang sedang digunakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Menetapkan dan Mengurus `sql_mode` Global dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!