Tóm lại, tôi có một tệp SQL mà tôi muốn nhập dưới dạng skeltệp kiểu, vì vậy việc này sẽ được thực hiện lặp đi lặp lại theo chương trình. Tôi có thể chỉnh sửa tệp SQL theo bất kỳ cách nào tôi muốn, nhưng tôi không muốn chạm vào chính ứng dụng đó.
Ứng dụng này sử dụng userid = 0để đại diện cho người dùng ẩn danh. Nó cũng có một mục nhập (trống) có liên quan trong cơ sở dữ liệu để đại diện cho 'người dùng' này. Do đó, dòng trong của tôi skel.sqltrông giống như sau:
INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
Vấn đề với điều này là uidmột auto_incrementtrường, về mặt kỹ thuật, 0là một giá trị không hợp lệ. Hoặc ít nhất, nếu bạn đặt nó thành 0, về cơ bản bạn đang nói với MySQL, "Vui lòng chèn id tiếp theo vào trường này."
Bây giờ, tôi cho rằng tôi có thể đặt một truy vấn INSERTsau đó UPDATEvào tệp SQL của mình, nhưng có cách nào để nói với MySQL nói chung rằng có, tôi thực sự muốn chèn 0vào trường này không?
sql_modelà danh sách cờ được phân tách bằng dấu phẩy. Nếu bạn làm vậysql_mode='NO_AUTO_VALUE_ON_ZERO', bạn có thể vô tình vô hiệu hóa các cờ khác