![使用MySQL的last_insert_id确定各表的唯一ID值 使用MySQL的last_insert_id确定各表的唯一ID值](/rjstyle/noimg/32.webp)
然后你需要一个表生成ID机制外的所有的点,我们通常使用一个单一的数据表(假设表称为ticket_mutex)保存ID,不管什么表数据的增加,是第一至ticket_mutex表的ID值加1,然后的ID。价值
这个ID回吐操作看起来很复杂,幸运的是,MySQL提供了一个last_insert_id机制可以使我们一步步完成它。
1。一个新的数据表ticket_mutex
复制代码代码如下所示:
创建表(ticket_mutex
varchar(32)名称不为空主键评论'企业名称',
(20)无符号值BIGINT NOT NULL值的comment'id
)发动机= InnoDB默认的字符集utf8评论保存表ID表;
字段名称用于解释这个ID是什么业务,如用户ID,我们可以是用户;
字段值是服务的id值。
2。初始化服务及其id值
复制代码代码如下所示:
插入ticket_mutex(名称、值)值(用户,0),('post ',0);
------ ------- + + +
|名字|价值|
------ ------- + + +
|后| 0 |
|用户| 0 |
------ ------- + + +
我们初始化了2个记录,即2个不同的服务,分别代表用户信息和主题信息,它们的初始ID值是0;
三.获取表的惟一id
这段时间是要利用的last_insert_id MySQL提供的机制()。
在用户表单中添加一段数据时,获取用户ID:
复制代码代码如下所示:
更新ticket_mutex设定值= last_insert_id(价值1),名为用户;选择last_insert_id();
------------------ + +
|(last_insert_id)|
------------------ + +
1 | |
------------------ + +
在这个语句之后,我们得到了结果1,这是我们需要的值。看看数据记录,我们发现记录的总数没有改变,但是用户的ID已经是1。
复制代码代码如下所示:
------ ------- + + +
|名字|价值|
------ ------- + + +
|后| 0 |
|用户| 1 |
------ ------- + + +
看看所有的记录:
复制代码代码如下所示:
------ ------- + + +
|名字|价值|
------ ------- + + +
|后| 1 |
|用户| 1 |
------ ------- + + +
从上面,我们可以看到,通过MySQL的last_insert_id机制,可以确保企业的身份不断增加没有记录总人数增加,从而保证ID的唯一性
4、last_insert_id描述
正如你可以看到的名字,last_insert_id是最后插入的ID值,根据MySQL官方手册,它具有使用2种方法。
首先,没有参数:last_insert_id()。该方法与auto_increment属性一起使用。当我们将记录添加到表的auto_increment'attribute领域,last_insert_id()返回该字段的值。你可以试试看。
二是表达:last_insert_id(价值1),如上所述,它返回的是表达,价值,价值+ 1;