An INSERT
statement chỉ để tạo bản ghi hoàn toàn mới, không phải để điền dữ liệu vào các bản ghi hiện có. Những gì bạn cần là một UPDATE
statement, cập nhật một bản ghi hiện có:
UPDATE bike SET full_day = 10 WHERE bike_type = 'mens_hybrid';
(Lưu ý: dưới đây là một phiên bản trước của câu trả lời này, từ trước khi nó là rõ ràng với tôi những gì các poster ban đầu đã cố gắng để làm Tôi để nó ở đây vì nhiều người đã trả lời câu hỏi này dường như không nhận thấy vấn đề bằng cách viết INSERT ... VALUES (...) WHERE
, điều này khiến tôi nghĩ rằng giải thích này có thể hữu ích đối với một số người gặp vấn đề này.)
Biểu đồ đó ent không có ý nghĩa. An INSERT
không thể mất một mệnh đề WHERE
, bởi vì WHERE
đề cập đến các bản ghi hiện có và một INSERT
tạo các bản ghi mới.
(Để chặn nhầm lẫn tiềm năng: có tồn tại một điều như INSERT INTO ... SELECT ...
, nơi các hồ sơ để chèn được xác định bởi một truy vấn SELECT
chứ không phải bởi một biểu thức VALUES
, và trong trường hợp đó truy vấn SELECT
có thể, tất nhiên, có một Điều khoản WHERE
. Nhưng không có trường hợp nào mệnh đề WHERE
thuộc về tuyên bố INSERT
trực tiếp.)
Làm cách nào để thêm giá trị 10 vào cột đó ở nơi mẫu xe đạp là xe đạp leo núi nam – Matt
@Matt: Tôi không biết nếu bạn thấy, nhưng tôi đã chỉnh sửa câu trả lời của mình; tất cả mọi thứ từ từ ** Cập nhật ** trở đi là mới, và tôi nghĩ * đó là những gì bạn đang tìm kiếm. Nếu không, thì bạn có thể phải đăng một số dữ liệu mẫu, hiển thị bảng của bạn sẽ trông như thế nào trước và sau khi bạn chạy câu lệnh. – ruakh
@Matt: Ngoài ra, DBMS nào bạn đang sử dụng? (MySQL? PostgreSQL? Oracle? SQL Server?) Tôi có thể thêm liên kết đến tài liệu liên quan, có thể bạn sẽ thấy hữu ích, nhưng các quy tắc chi tiết phụ thuộc một chút vào DBMS, vì vậy tôi không muốn đăng (nói) Tài liệu Oracle nếu bạn đang sử dụng (nói) MySQL. – ruakh