Skip to content

INSERT - 增

普通插入

sql
-- 直接插入一行
insert into customers
values (default,'a','b',null,null,'china','bj','CA',11111)

-- 根据具体字段插入,其余用默认值
insert into customers (first_name, last_name, address, city, state)
values ('a','b111','china','bj','0')

插入多行

sql
INSERT INTO shippers (name)
VALUES
	('shipper1'),
    ('shipper2'),
    ('shipper3')

向多个表插入

核心是借助 last_insert_id(), 该函数是一个用于获取最后插入行的自增 ID 值的函数。它返回上一个 INSERT 语句中生成的自增 ID 值。

sql
INSERT INTO orders (customer_id, order_date, status)
VALUES (1, '2019-01-02', 1);

INSERT INTO order_items
VALUES
	(last_insert_id(), 1, 1, 2.95),
    (last_insert_id(), 2, 1, 3.95)

子查询插入

借助子查询,将 orders 表中符合的数据全部插入到 orders_archived

sql
INSERT INTO orders_archived
SELECT *
FROM orders
WHERE order_date > '2019-01-01'