Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 部分自增_Mysql - Fatal编程技术网

Mysql 部分自增

Mysql 部分自增,mysql,Mysql,我正在创建一个笔记应用程序。我想通过从用户id检索注释id(1、2或3等)来检索注释。 例如,我想从用户1检索note 3,也想从用户2检索note 3,但我想让每个用户的note编号自动递增。如果您的应用程序不必处理大量并发性(在任何给定时间只有同一用户的一个实例在线),那么这个简单的解决方案就可以正常工作: SELECT max(note_id) + 1 AS new_id FROM notes WHERE user_id = $user_id; 确保在表notes中的user\u

我正在创建一个笔记应用程序。我想通过从用户id检索注释id(1、2或3等)来检索注释。
例如,我想从用户1检索note 3,也想从用户2检索note 3,但我想让每个用户的note编号自动递增。

如果您的应用程序不必处理大量并发性(在任何给定时间只有同一用户的一个实例在线),那么这个简单的解决方案就可以正常工作:

SELECT max(note_id) + 1 AS new_id
FROM   notes
WHERE  user_id = $user_id;

确保在表
notes
中的
user\u id
上有索引,甚至在
(user\u id,note\u id)
上有索引,以便快速查找。

在此查询之前锁定选项卡,MAX()对每个人都一样!当存在任何形式的并发可能和/或发生时,这不起作用。完成所有操作后,解锁表格。@FrankHeikens:
max(note\u id)
对于相同的
user\u id
,不是每个人都一样。只有对同一用户的两个查询可以同时进行,这才是一个问题。