5
Tôi cố gắng để sử dụng nhiều chèn (trong một tuyên bố) và tôi có cấu trúc bảng nàyNgăn chặn MySQL từ chèn giá trị mặc định ngầm vào không cột rỗng
CREATE TABLE Scores
(
studentID varchar(50) not null,
score int
)
ENGINE = InnoDB
Query của tôi:
INSERT INTO Scores Values
('Barry', 45),
(NULL, 41),
('Jones', 53)
này tuyên bố (tôi dự kiến) nên thất bại vì [StudentID] cột không chấp nhận NULL. Vấn đề là MySQL chèn chuỗi rỗng ('') vào hàng 2 ... và cho phép phần còn lại tiếp tục.
nếu tôi không có đặc quyền đó trên MySQL thì sao ?? Có thể làm điều đó từ PHP của tôi không? Ngoài ra, tài liệu MySQL cho biết việc thay đổi SQL_MODE có thể ảnh hưởng đến các phần khác của DB (ví dụ: Phân vùng, Master + Slave ...) – codingbiz
@tunmisefasipe: tất cả người dùng đều có đặc quyền đó (cho phiên hiện tại của họ). Để làm điều đó từ 'PHP', chỉ cần phát hành' mysql_query ("SET SQL_MODE = 'STRICT_ALL_TABLES'") 'hoặc tương tự của nó trong thư viện bạn đang sử dụng. Có, nó có thể ảnh hưởng đến các phần khác của cơ sở dữ liệu. – Quassnoi
Cảm ơn bạn @Quassnoi Tôi sẽ thử điều này và xem mọi thứ diễn ra như thế nào – codingbiz