数据库中id的值
mysql> select * from user_id_seq;
+----------+------+
| id | stub |
+----------+------+
| 10000025 | a |
+----------+------+
| user_id_seq | CREATE TABLE `user_id_seq` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stub` varchar(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stub` (`stub`)
) ENGINE=InnoDB AUTO_INCREMENT=10000026 DEFAULT CHARSET=utf8 |
使用mysql生成全局主键,测试的时候因为需要将AUTO_INCREMENT调整到了一千万,测试完成后希望该键值退回到一个比较小的初始值。
mysql> update user_id_seq set id = 100;
mysql> commit;
修改完后:
mysql> select * from user_id_seq;
+-----+------+
| id | stub |
+-----+------+
| 100 | a |
+-----+------+
但是:
mysql> show create table user_id_seq;
| user_id_seq | CREATE TABLE `user_id_seq` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stub` varchar(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stub` (`stub`)
) ENGINE=InnoDB AUTO_INCREMENT=10000026 DEFAULT CHARSET=utf8 |
AUTO_INCREMENT的值依旧是10000026
然后再执行:
mysql> alter table user_id_seq AUTO_INCREMENT = 100;
mysql> commit;
这时AUTO_INCREMENT的值才真正的变小,再次从该表中取得主键值将从101开始。
分享到:
相关推荐
mysql中的自增auto_increment功能相信每位phper都用过,也都知道如何设置字段为自增字段,但并不是所有phper都知道auto_increment的起始值和递增量是如何设置的!本文就为大家分享一下mysql字段自增功能的具体查看及...
- auto_increment_offset和auto_increment_increment:这两个参数用于控制自动增长字段的初始值和增量,对于双向复制来说,两台服务器的auto_increment_offset应设置不同值,避免数据冲突。 - replicate-do-db和...
MySQL数据库中的自动递增值(AUTO_INCREMENT)是用于创建唯一标识符的一种机制,尤其在需要为每条记录分配一个唯一的ID时非常有用。这个特性主要应用于整数类型的字段,并且通常设置为主键的一部分,确保每个记录的...
为了防止数据冲突,自增ID的配置至关重要,通常会设置`auto_increment_increment`和`auto_increment_offset`以避免ID冲突。此外,半同步复制(semi-sync)可以降低复制延迟,但可能牺牲事务并发性能。对于延迟非常...
在MySQL中,我们通常使用`AUTO_INCREMENT`属性来定义自增主键,而在Oracle中,可使用`SEQUENCE`对象来生成序列号。在数据同步过程中,如果需要保持两个数据库的主键一致,需要在插入Oracle时根据MySQL的最新主键值...
`id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `code` VARCHAR(10) UNIQUE ); CREATE TABLE `cities` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `province_id` INT, `name` VARCHAR(50)...
- AUTO_INCREMENT冲突可能导致插入阻塞。 - 资源消耗可能较大,特别是处理复杂语句时。 **RBR优点**: - 数据一致性更高,因为只记录实际改变的行。 - 更适合复杂的存储过程和触发器。 - 减少因全表扫描导致的锁...
id int primary key auto_increment, username varchar(40), password varchar(40), email varchar(40), role char(1), status char(1), account decimal(10,2), age int, registtime timestamp, image ...
6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化...
6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2....
auto_increment_increment和auto_increment_offset用于解决在多主环境下auto_increment字段可能出现的重复问题。 接下来,需要在两台服务器上创建用于复制的账户。这里使用了replication slave权限,创建完账户后,...
6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 ...
6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化...
多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己...
配置过程中,需要修改MySQL的配置文件,例如设置`binlog_format`为`mixed`模式,启用`relay-log`和`relay-log-index`,并调整`auto-increment-increment`和`auto-increment-offset`以防止主键冲突。此外,可以通过`...
`id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ); ``` 在这个例子中,`created_...
6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化...