MySQL 插入数据
用 INSERT 插入单行与多行,理解自增与主键冲突。
Key PointsINSERT 可一次插一行或多行;自增主键不写也会自动生成。
插入单行
SQL
INSERT INTO users (username, email, age)
VALUES ('alice', 'alice@example.com', 28);Output
Query OK, 1 row affected (0.01 sec)插入多行
SQL
INSERT INTO users (username, email, age) VALUES
('bob', 'bob@example.com', 32),
('carol', 'carol@example.com', 25),
('dave', 'dave@example.com', 41);Output
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0常见报错
SQL
-- 主键/唯一键冲突
INSERT INTO users (id, username, email) VALUES (1, 'x', 'x@e.com');Output
ERROR 1062 (23000): Duplicate entry '1' for key 'users.PRIMARY'For upsert use
INSERT ... ON DUPLICATE KEY UPDATE or INSERT IGNORE — handy for idempotent writes.插入单行
SQL
INSERT INTO users (username, email, age)
VALUES ('alice', 'alice@example.com', 28);Output
Query OK, 1 row affected (0.01 sec)插入多行
SQL
INSERT INTO users (username, email, age) VALUES
('bob', 'bob@example.com', 32),
('carol', 'carol@example.com', 25),
('dave', 'dave@example.com', 41);Output
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0常见报错
SQL
-- 主键/唯一键冲突
INSERT INTO users (id, username, email) VALUES (1, 'x', 'x@e.com');Output
ERROR 1062 (23000): Duplicate entry '1' for key 'users.PRIMARY'想「存在就跳过 / 存在就更新」用
INSERT ... ON DUPLICATE KEY UPDATE 或 INSERT IGNORE,做幂等写入时很常用。