如何更改mysql中auto

如何更改mysql中auto,第1张

您好,很高兴为您解答。

查看db.table表的下一条记录auto_increment的值:

show table status from db like 'table'

例如:

mysql>show table status from mailbox like 'mailbox'

+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-

--------------------+---------------------+-------------------+----------+----------------+---------+

| Name| Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free |Auto_increment| Create_time |

Update_time | Check_time | Collation | Checksum | Create_options | Comment |

+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-

--------------------+---------------------+-------------------+----------+----------------+---------+

| mailbox | MyISAM | 10 | Dynamic| 1681 |148 | 249688 | 281474976710655 | 104448 | 0 | 15355| 2012-03-13 11:19:10 |

2012-03-13 11:19:10 | 2012-03-13 11:19:10 | latin1_swedish_ci | NULL || |

+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-

--------------------+---------------------+-------------------+----------+----------------+---------+

1 row in set (0.00 sec)

Auto_increment:15355

这个就是下一条记录会使用的自增ID;

修改db.table表下一条记录使用的自增ID值为20000:

alter table db.table auto_increment=20000

例如:

mysql>alter table mailbox.mailbox auto_increment=20000

Query OK, 1681 rows affected (0.05 sec)

这时再进行:

show table status from mailbox like 'mailbox'

auto_increment已经变成20000;

新插入的记录,自增字段就会从20000开始;

怎么重置mysql的自增列AUTO

1. 支持设置自增列的值

1

ALTER TABLE table_name AUTO_INCREMENT = 1

不过这种方式只能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为 当前最大值加1。innodb则不会改变。

2.通过TRUNCATE把自增列设置为0,从MySQL 5.0.13开始TRUNCATE就能重置自增列为0.myisam和innode都是如此。

1

TRUNCATE TABLE table_name

3.drop和create重建表方式重置自增列为0

1

2

DROP TABLE table_name

CREATE TABLE table_name { ... }

1.用sql工具执行show variables like‘%sql_mode%’

2.如果重启之后不成功, 注意检查你的my.ini 或者 my.cnf 有没改对,是不是有多个同名字的配置文件, 也有可能叫sql-mode 或sql_mode 注意中间的‘-’ 或 ‘_’

mysql的sql_mode合理设置,sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法 *** 作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题 。

ONLY_FULL_GROUP_BY,对于GROUP BY聚合 *** 作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

NO_AUTO_VALUE_ON_ZERO,该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8658143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存