Mysql 如何为每组用户实现序列号数据库?
很容易创建一个数据库表来存储Mysql 如何为每组用户实现序列号数据库?,mysql,Mysql,很容易创建一个数据库表来存储序列数字;但这种设计适用于所有用户共享序列的事件。我想要的是为每个用户组创建序列:这个组可以随时增长,因为它是一个数据库表,管理员可以随时创建一个组,并将用户分配到特定组。那么,如何根据组实现序列生成呢?如果您使用的是myisam 以下内容摘自上述链接。 对于MyISAM和BDB表,可以在 多列索引中的第二列。在这种情况下 自动增量列的生成值计算为 最大值(自动增量列)+1,其中前缀=给定前缀。这是 当您想要将数据放入有序的组中时非常有用 对于您的情况: CREAT
序列
数字;但这种设计适用于所有用户共享序列
的事件。我想要的是为每个用户组创建序列
:这个组
可以随时增长,因为它是一个数据库表,管理员可以随时创建一个组,并将用户分配到特定组。那么,如何根据组实现序列
生成呢?如果您使用的是myisam
以下内容摘自上述链接。
对于MyISAM和BDB表,可以在
多列索引中的第二列。在这种情况下
自动增量列的生成值计算为
最大值(自动增量列)+1,其中前缀=给定前缀。这是
当您想要将数据放入有序的组中时非常有用
对于您的情况:
CREATE TABLE mytable (
user_id MEDIUMINT NOT NULL AUTO_INCREMENT,
group_id MEDIUMINT NOT NULL,
user_name CHAR(30) NOT NULL,
PRIMARY KEY (group_id,user_id)
) ENGINE=MyISAM;
INSERT INTO mytable (group_id, user_name) VALUES
(1,'alex'),(1,'jenny'),(2,'baz'),(1,'tim'),(2,'danny'),(3,'joe');
SELECT * FROM mytable ORDER BY group_id,user_id;
返回:
user_id group_id user_name
1 1 alex
2 1 jenny
3 1 tim
1 2 baz
2 2 danny
1 3 joe
如果您正在使用myisam 以下内容摘自上述链接。 对于MyISAM和BDB表,可以在 多列索引中的第二列。在这种情况下 自动增量列的生成值计算为 最大值(自动增量列)+1,其中前缀=给定前缀。这是 当您想要将数据放入有序的组中时非常有用 对于您的情况:
CREATE TABLE mytable (
user_id MEDIUMINT NOT NULL AUTO_INCREMENT,
group_id MEDIUMINT NOT NULL,
user_name CHAR(30) NOT NULL,
PRIMARY KEY (group_id,user_id)
) ENGINE=MyISAM;
INSERT INTO mytable (group_id, user_name) VALUES
(1,'alex'),(1,'jenny'),(2,'baz'),(1,'tim'),(2,'danny'),(3,'joe');
SELECT * FROM mytable ORDER BY group_id,user_id;
返回:
user_id group_id user_name
1 1 alex
2 1 jenny
3 1 tim
1 2 baz
2 2 danny
1 3 joe
没有必要是中等的。没有必要是中等的。