Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lỗi INSERT INTO ... VALUE() trong MySQL: Phải dùng VALUES()

Sửa lỗi cú pháp INSERT: VALUES() không phải VALUE()

MySQL yêu cầu từ khóa VALUES (số nhiều) trong câu lệnh INSERT, không phải VALUE (số ít). Đây là lỗi thường gặp khi mới học.

Cú pháp sai (gây lỗi)

INSERT INTO yourTableName VALUE(yourValue1, yourValue2, ...);

Cú pháp đúng

INSERT INTO yourTableName VALUES(yourValue1, yourValue2, ...);

Ví dụ đầy đủ

mysql> CREATE TABLE DemoTable (
    StudentId INT,
    StudentName VARCHAR(40),
    StudentAge INT
);
mysql> INSERT INTO DemoTable VALUES (1001, 'Tom', 20);
mysql> INSERT INTO DemoTable VALUES (1002, 'Mike', 21);
mysql> INSERT INTO DemoTable VALUES (1003, 'Sam', 19);

Kiểm tra

mysql> SELECT * FROM DemoTable;
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1001      | Tom         | 20         |
| 1002      | Mike        | 21         |
| 1003      | Sam         | 19         |
+-----------+-------------+------------+

Các dạng INSERT hợp lệ khác:

1. Chỉ định cột (khuyến nghị):

INSERT INTO DemoTable (StudentName, StudentAge) VALUES ('Anna', 22);

2. Chèn nhiều hàng cùng lúc:

INSERT INTO DemoTable (StudentName, StudentAge) VALUES
    ('Alice', 20), ('Bob', 21), ('Carol', 22);

3. INSERT ... SELECT:

INSERT INTO DemoTable (StudentName, StudentAge)
SELECT Name, Age FROM AnotherTable;

4. INSERT IGNORE / ON DUPLICATE KEY UPDATE:

INSERT IGNORE INTO DemoTable VALUES (1001, 'Tom', 20); -- Bỏ qua nếu trùng PK
INSERT INTO DemoTable VALUES (1001, 'Tom', 20)
ON DUPLICATE KEY UPDATE StudentName='Tom', StudentAge=20;