`

mysql自增值 auto_invrement_increment的查看和修改

阅读更多
  1.  
    查看与设置:
  2.  
     
  3.  
    show variables like '%auto_inc%';          
  4.  
    show session variables like '%auto_inc%';   --  //session会话变量
  5.  
    show global variables like '%auto_inc%';   --  //全局变量
  6.  
      SET @auto_increment_increment = 3 ;
  7.  
      SET session auto_invrement_increment=2;
  8.  
      SET global auto_increment_increment=1;

 第一种和第二种是一样的效果,第三个是修改全局的变量;

 

 

 

mysql中有自增长字段,在做数据库的主主同步时需要设置自增长的两个相关配置:auto_increment_offset和auto_increment_increment。

 

  • auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1 .. 65535
  • auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

 

在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2.

 

这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。

 

 

 

 

 

-->创建表时指定AUTO_INCREMENT自增值的初始值:

 

    mysql>CREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

 

-->通过ALTER TABLE 修改初始值(但要大于表中的AUTO_INCREMENT自增值,否则设置无效):

 

    mysql>ATLER TABLE BIN_TBL AUTO_INCREMENT=100;

 

-->如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。

 

    就是说如果表中原本有AUTO_INCREMENT属性值连续为78、100的值,但100这个数据被删除了,下此再添加数据的时候自增值为101,100被重用了。

 

    即使在你将整个表中的所有数据delete清空后,之前的自增序列最大值还是会被重用。解决办法是:

 

    使用ATLER TABLE BIN_TBL AUTO_INCREMENT=0;重新设置自增初始值。

 

-->设置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用户变量值:(重启MySQL之后,这些修改会恢复为初始值1)

 

  mysql>SET auto_increment_increment=10;      #自增量每次增加的值改为10,

 

  mysql>SET auto_increment_offset=2;             #第一次加载数值时的偏移值的个位值

 

  mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; #查看修改后变量的值

 

 

转载注明出处:https://blog.csdn.net/xinyuan_java/article/details/93874555

分享到:
评论

相关推荐

    MySQL AUTO_INCREMENT 主键

    ### MySQL AUTO_INCREMENT 主键详解 在数据库设计与应用中,主键是确保数据表每一行记录唯一性的关键机制之一。而`AUTO_INCREMENT`属性则是在MySQL数据库系统中为某些整数类型的主键自动分配唯一值的功能。下面我们...

    python mysql自增字段AUTO_INCREMENT值的修改方式

    总的来说,本文对如何在Python脚本中操作MySQL数据库以修改AUTO_INCREMENT值给出了全面的介绍,包括了连接数据库、查询当前自增值、修改自增值的方法,以及在Django框架中可能会遇到的一些相关问题的解决办法,是为...

    MySQL 序列 AUTO_INCREMENT详解及实例代码

    MySQL 序列 AUTO_INCREMENT详解及实例代码 MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用...

    mysql中自增auto_increment功能的相关设置及问题

    要查看MySQL中的自增设置,可以使用`SHOW VARIABLES LIKE '%auto_increment%'`命令。这将显示两个关键变量: - `auto_increment_increment`:定义了自增字段每次递增的步长,默认值为1,即每次递增1。 - `auto_...

    怎么重置mysql的自增列AUTO_INCREMENT初时值

    在MySQL数据库中,自增列(AUTO_INCREMENT)是一种非常有用的特性,它允许表中的某列在插入新记录时自动递增其值。当你需要重置这个初始值时,可能是因为数据库进行了一些清理操作或者需要从特定数值开始重新计数。...

    MySQL查询和修改auto_increment的方法

    在MySQL数据库中,`...通过理解并熟练掌握这些查询和修改`auto_increment`的方法,可以更有效地管理和维护MySQL数据库中的表,确保数据的完整性和一致性。在实际工作中,务必谨慎操作,避免对数据造成不必要的影响。

    04_auto_increment—MYSQL相关应用

    04_auto_increment.avi MYSQL应用 MYSQL视频 MYSQL教程,讲解中连接上一集03集

    解析mysql中的auto_increment的问题

    MySQL中的auto_increment是一种非常实用的属性,用于为表中的记录自动生成唯一的ID。这通常用于主键字段,确保每条记录都可以通过一个唯一的标识符进行区分。然而,auto_increment在处理记录删除、数据库重启以及...

    blog_auto_increment

    标题“blog_auto_increment”暗示了我们讨论的主题与数据库中的自动递增字段有关,这通常用于在插入新记录时自动生成唯一的标识符。在数据库管理中,自动递增(Auto Increment)是一个非常重要的概念,尤其在关系型...

    Mysql auto_increment 重新计数(让id从1开始)

    在MySQL数据库中,`auto_increment` 是一个非常重要的特性,它允许在插入新记录时自动为某个整数字段(通常是主键)生成唯一的递增值。当你清空一个具有`auto_increment`字段的表,然后重新插入数据时,可能会发现这...

    mysql_test_c__by_wy.rar_MYSQL_mysql api_mysql c++

    const char* create_table_sql = "CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT)"; if (mysql_query(conn, create_table_sql)) { fprintf(stderr, "%s\n",...

    mysql.rar_MySQL Visual C++_MySql查询_c语言mysql_mysql c语言_mysql操作

    char *sql = "CREATE TABLE IF NOT EXISTS Employees (ID INT AUTO_INCREMENT PRIMARY KEY, Name CHAR(20), Position CHAR(20));"; if (mysql_query(conn, sql)) { fprintf(stderr, "%s\n", mysql_error(conn)); } ...

    mysql 双向同步的键值冲突问题的解决方法

    总的来说,解决MySQL双向同步中的键值冲突问题,关键在于利用`auto_increment_offset`和`auto_increment_increment`参数,合理规划每个服务器的自增长ID序列,以确保数据的一致性和完整性。同时,为了保证整个系统的...

    MySQL8.0优化Hint-在SQL中修改会话变量.pdf

    * sql_auto_is_null * sql_big_selects * sql_buffer_result * sql_mode * sql_safe_updates * sql_select_limit * timestamp * tmp_table_size * updatable_views_with_limit * unique_checks * windowing_use_high...

    mysql.zip_MYSQL_mysql vc_mysql-vc_vc mysql

    const char* create_table_sql = "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50))"; if (mysql_query(conn, create_table_sql)) { cerr << "Error: " << mysql_error...

    createtable.zip_CREATE TABLE_MYSQL_cvi mysql_mysql c_mysql creat

    id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, salary DECIMAL(10, 2) NOT NULL ); ``` 这里,`id`列设为主键,自动增长;`name`列是字符串类型,不允许为空;`salary`列是十进制数,用于...

    Vocabulary_python_mySQL.rar_MYSQL_python mysql_python MySQL_p

    Python和MySQL是两种非常流行的开源技术,它们在数据处理和Web开发中有着广泛的应用。Python是一种高级编程语言,以其简洁的语法和强大的功能受到开发者喜爱,而MySQL则是一款高效的开源关系型数据库管理系统,适合...

Global site tag (gtag.js) - Google Analytics