mysql 多列唯一索引在事务中select for update是否行锁
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 多列唯一索引在事务中select for update是否行锁相关的知识,希望对你有一定的参考价值。
参考技术A 代码如下:vipMember = SELECT * FROM vip_member WHERE
uid=1001 LIMIT 1 # 查uid为1001的会员if vipMember.end_at < NOW():
UPDATE
vip_member SET start_at=NOW(), end_at=DATE_ADD(NOW(), INTERVAL 1 MONTH),
active_status=1, updated_at=NOW() WHERE uid=1001
else:
UPDATE
vip_member SET end_at=DATE_ADD(end_at, INTERVAL 1 MONTH), active_status=1,
updated_at=NOW() WHERE uid=1001
MySQL专题八:索引
MySQL专题八:索引
8.1. 索引类型
-
主键索引
默认mysql会为主键建立索引 -
唯一索引
用来保证一列或多列的唯一值,避免重复值 -
全文索引
-
多列索引
8.2. 索引创建
下面的index_keyword
可以是PRIMARY KEY
, FOREIGN KEY
、UNIQUE INDEX
, INDEX
, and FULLTEXT INDEX
- 在
CREATE TABLE
语句中
CREATE TABLE table_name (
field_name_1 field_type_1,
...
field_name_n field_type_n,
index_keyword index_name (field_name_1,field_name_2,...)
) ENGINE=InnoDB;
- 在
ALTER TABLE
语句中
ALTER TABLE table_name
ADD CONSTRAINT constraint_name index_keyword(field_name_1,field_name_2,...);
- 在
CREATE INDEX
语句中
CREATE index_keyword index_name
ON table_name(field_name_1,field_name_2,...);
以上是关于mysql 多列唯一索引在事务中select for update是否行锁的主要内容,如果未能解决你的问题,请参考以下文章
MySQL处理重复键错误插入具有多个唯一索引的表;不是多列唯一索引
互联网行业中最常用的数据库——MySQL 索引事务与存储引擎