ไม่สามารถแทรกด้วยค่าว่างใน MariaDB ไม่ได้อยู่ในโหมดเข้มงวด


0

ฉันเพิ่งตั้งค่าสภาพแวดล้อม dev ใหม่บน Debian 9 และ mariadb: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1

สภาพแวดล้อมก่อนหน้านี้คือ Debian 7 ที่มี mysql: 5.6.38-1 ~ dotdeb + 7.1 (Debian)

ค่าสำหรับ sql-mode คือ: MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+

สำหรับฐานข้อมูลคอลัมน์ถูกตั้งค่าเป็น NOT NULL โดยไม่มีค่าเริ่มต้น (ส่วนใหญ่เป็นเพียง varchar / ฟิลด์ข้อความ)

ฉันไม่สามารถแทรกบันทึกใหม่หรือเปลี่ยนระเบียนที่มีอยู่ ฉันใช้ laravel / eloquent และหากฉันตั้งค่าตัวเลือกการเชื่อมต่อเป็นเข้มงวด = true ฉันได้รับข้อผิดพลาดเกี่ยวกับคอลัมน์ที่ไม่มีค่าเริ่มต้นแทน

การวิจัยทั้งหมดของฉันปรากฏว่าฉันควรจะสามารถปิดโหมดเข้มงวดเพื่อให้ได้ฟังก์ชั่นเก่ากลับมา แต่ก็ไม่ปรากฏว่าโหมดเข้มงวดเปิดอยู่

มีตัวเลือกการกำหนดค่าที่ฉันหายไปหรือไม่?

คำตอบ:


0

การค้นหาการตั้งค่าที่ช่วยให้รหัสที่ไม่ถูกต้องสามารถทำงานต่อได้ไม่ใช่ความคิดที่ดี วันหนึ่งในที่สุดมันก็จะแสดงพฤติกรรมที่ผิด

แก้ไขรหัสของคุณเพื่อแทรกค่าลงในคอลัมน์ทั้งหมดที่ตั้งค่าไว้NOT NULLและไม่มีค่าเริ่มต้น

อีกทางหนึ่งหากมีค่าเริ่มต้นที่มีความหมายสำหรับคอลัมน์ให้เปลี่ยนคอลัมน์ตารางเพื่อจัดเก็บค่าเริ่มต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.