MySQL限制相同“用户”值

时间:2016-05-27 07:08:57

标签: mysql transactions innodb acid

如何针对相同的“用户”值限制MySQL的最大行数?

例如,我有表格列

id | user | data

我希望将每个用户的最大行数限制为5(相同的“用户”值)。

我的想法是使用交易(InnoDB):

start transaction
insert row with user = "XXX"
count rows, where user = "XXX"
if count < 5 commit else rollback

我的想法是好的还是存在另一个(更好的)解决方案?

1 个答案:

答案 0 :(得分:1)

我认为没关系,你可能想做一个

select count(1) from table where user='XXX'

并在执行插入之前检查计数。