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;