INSERT
, and
Syntax
INSERT INTO table (columns) VALUES (values); INSERT INTO table (columns) VALUES (v1), (v2), ...; INSERT INTO table (columns) SELECT ... FROM ...;
Parameters
| Parameters | Description | Examples | Level |
|---|---|---|---|
VALUES |
INSERT INTO users (username) VALUES ('alice'); |
Common | |
ON DUPLICATE KEY UPDATE |
New | INSERT INTO ... ON DUPLICATE KEY UPDATE count = count + 1; |
Advanced |
IGNORE |
, | INSERT IGNORE INTO users (email) VALUES ('a@b.com'); |
Advanced |
SET |
Syntax | INSERT INTO users SET username='bob', email='b@b.com'; |
Common |
SELECT |
INSERT INTO archive SELECT * FROM orders WHERE status = 3; |
Advanced |
Examples
INSERT INTO users (username, email, password_hash)
VALUES ('alice', 'alice@example.com', SHA2('password123', 256));id and
INSERT INTO products (name, price, stock, category_id) VALUES
('iPhone 15', 5999.00, 100, 1),
('MacBook Pro', 12999.00, 50, 2),
('AirPods Pro', 1899.00, 200, 3);, 1000-5000
New(UPSERT)
INSERT INTO user_stats (user_id, login_count, last_login) VALUES (1001, 1, NOW()) ON DUPLICATE KEY UPDATE login_count = login_count + 1, last_login = NOW();
user_id, New,
INSERT INTO order_archive (id, order_no, user_id, total_amount, created_at) SELECT id, order_no, user_id, total_amount, created_at FROM orders WHERE status = 3 AND created_at < '2025-01-01';
Common Errors
ERROR 1062 (23000): Duplicate entry 'xxx' for key 'PRIMARY'. ON DUPLICATE KEY UPDATE INSERT IGNORE
ERROR 1136 (21S01): Column count doesn't match value countand, VALUES
Tips
- : SET autocommit=0;.. COMMIT;
- INSERT INTO table VALUES(..),
- LOAD DATA INFILE, INSERT 20