MySQL一张表怎么实现两列自增?我现在有一张表:(主键)自增id、用户id、用户登录方式、

我现在有一张表(5个字段):

自增id(主键)
用户id
用户登录方式
账户
密码

我的想法是,用户注册某网站可以选择不同的登录方式(手机号、邮箱等),起初每种登陆方式对应不同的用户id,比如现在有一个用户用手机号注册了,然后他又用邮箱注册了(现在表里有两条记录):
+----+---------+------------------+---------------+----------+
| id | user_id | identity_type | account | password |
+----+---------+------------------+---------------+----------+
| 1 | 1 | 手机号 | 18600000000 | 123456 |
| 2 | 2 | 邮箱 | [email protected] | 123456 |
+----+---------+------------------+---------------+----------+
但是用户可以选择将手机号账户和邮箱账户合并。合并时,只需合并user_id字段即可。
+----+---------+------------------+---------------+----------+
| id | user_id | identity_type | account | password |
+----+---------+------------------+---------------+----------+
| 1 | 1 | 手机号 | 18600000000 | 123456 |
| 2 | 1 | 邮箱 | [email protected] | 123456 |
+----+---------+------------------+---------------+----------+
现在我的问题是,当用户提交表单进行注册时,表中已经有一个自增的id主键了,但我还想让user_id也同时自增(用于区别不同的登陆方式,后续用户需要合并时再修改)。比如又有几个用户注册了,表信息变成:
+----+---------+------------------+---------------+----------+
| id | user_id | identity_type | account | password |
+----+---------+------------------+---------------+----------+
| 1 | 1 | 手机号 | 18600000000 | 123456 |
| 2 | 1 | 邮箱 | [email protected] | 123456 |
| 3 | 2 | 邮箱 | [email protected] | 123456 |
| 4 | 3 | 邮箱 | [email protected] | 123456 |
+----+---------+------------------+---------------+----------+
请问这种需求应该怎么实现?mysql默认只有主键可以自增,两列实现不了啊?

第1个回答  2020-12-21
自己写函数,实现自增。
第2个回答  2020-12-21
您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。只能有一个字段是自动增长并定义为键

如果硬要rid也自动增长的话,试下trigger非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
相似回答