示例表架构
CREATE TABLE customers(customer_id INT, `name` VARCHAR(32));
CREATE TABLE orders(order_id INT, customer_id INT, order_date DATE);
Run Code Online (Sandbox Code Playgroud)
风景
CREATE VIEW vw_orders AS
SELECT order_id, o.customer_id order_customer_id, c.customer_id, c.name customer_name, order_date
FROM orders o INNER JOIN
customers c ON o.customer_id = c.customer_id;
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样插入
INSERT INTO vw_orders (customer_id, customer_name) VALUES (1, 'Customer1');
INSERT INTO vw_orders (order_id, order_customer_id, order_date) VALUES (1, 1, CURDATE());
Run Code Online (Sandbox Code Playgroud)
或更新
UPDATE vw_orders SET customer_name = 'Customer11' WHERE customer_id = 1;
Run Code Online (Sandbox Code Playgroud)
注意:您将无法使用单个语句在两个基础表中插入或更新值
这个说法
INSERT INTO vw_orders (customer_id, customer_name, order_id, order_customer_id, order_date)
VALUES (2, 'Customer2', 2, 2, CURDATE());
Run Code Online (Sandbox Code Playgroud)
会因错误而失败
CREATE TABLE customers(customer_id INT, `name` VARCHAR(32));
CREATE TABLE orders(order_id INT, customer_id INT, order_date DATE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5466 次 |
| 最近记录: |