MySQL高级操作:插入/更新组合、有序操作与多表操作
1. 插入/更新组合语句
在实际应用中,我们常常会遇到需要记录客户访问银行分行信息的场景。为了实现这一需求,我们可以创建一个名为 branch_usage 的表,该表包含客户ID、分行ID以及客户最后访问分行的日期时间。以下是创建该表的SQL语句:
CREATE TABLE branch_usage
(branch_id SMALLINT UNSIGNED NOT NULL,
cust_id INTEGER UNSIGNED NOT NULL,
last_visited_on DATETIME,
CONSTRAINT pk_branch_usage PRIMARY KEY (branch_id, cust_id)
);
这个表定义了一个主键约束,确保每个分行和客户的组合是唯一的。当客户首次访问某个分行时,我们可以直接插入一条记录:
mysql> INSERT INTO branch_usage (branch_id, cust_id, last_visited_on)
-> VALUES (1, 5, CURRENT_TIMESTAMP());
Query OK, 1 row affected (0.02 sec)
然而,当客户再次访问同一分行时,如果直接插入新记录,会因为主键冲突而报错:
ERROR 1062 (23000): Duplic
超级会员免费看
订阅专栏 解锁全文
174万+

被折叠的 条评论
为什么被折叠?



