Gelagat Sisip MySQL: Pemangkasan vs Ralat
MySQL mempamerkan gelagat yang berbeza-beza apabila cuba memasukkan data yang melebihi had panjang lajur: pemotongan atau ralat . Dalam senario ini, kami menyasarkan untuk mengubah suai tika MySQL untuk memotong data dan bukannya menimbulkan ralat.
Penyelesaian: Lumpuhkan STRICT_TRANS_TABLES dan STRICT_ALL_TABLES
Secara lalai, MySQL menguatkuasakan ketat mod, yang termasuk tetapan STRICT_TRANS_TABLES dan STRICT_ALL_TABLES. Tetapan ini melarang nilai yang tidak sah atau tiada dalam operasi perubahan data seperti INSERT atau UPDATE.
Untuk membenarkan pemangkasan automatik rentetan yang dimasukkan, kami boleh melumpuhkan STRICT_TRANS_TABLES dan STRICT_ALL_TABLES. Begini cara untuk melakukannya:
<code class="sql">SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;</code>
Penjelasan:
Dengan melumpuhkan tetapan ini, kami mengalih keluar sekatan pada nilai yang tidak sah atau tiada. Ini membolehkan MySQL memotong secara senyap data yang melebihi had panjang lajur, mematuhi tingkah laku lalai pemangkasan.
Rujukan:
Mod SQL Pelayan MySQL: https:/ /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
Atas ialah kandungan terperinci Bagaimana untuk Membuat Data MySQL Truncate Daripada Meningkatkan Ralat pada Sisipan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!