zoukankan      html  css  js  c++  java
  • mysql 更改存储引擎,更改自增列计数值,更改默认字符集

    先看代码:

    user
    +-------------+------+----+
    | name | age | id |
    +-------------+------+----+
    | zhangzhibin | 13 | 1 |
    | lisi | 13 | 2 |
    | wangwu | 18 | 3 |
    | zhangzhibin | 19 | 4 |
    | lisi | 12 | 5 |
    | wangwu | 13 | 6 |
    | zhangzhibin | 11 | 7 |
    | lisi | 14 | 8 |
    | wangwu | 16 | 9 |
    | zhangzhibin | 18 | 10 |
    | zhaoliu | 14 | 12 |
    | cc | 15 | 13 |
    +-------------+------+----+

    mysql> show create table user \G
    *************************** 1. row ***************************
    Table: user
    Create Table: CREATE TABLE `user` (
    `name` varchar(16) CHARACTER SET latin1 DEFAULT NULL,
    `age` smallint(6) DEFAULT NULL,
    `id` int(11) NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8//看这里,看这里,看这里~~~~
    1 row in set (0.00 sec)

    如上图 user表的三个在括号外的值:engine / auto_increment  / default charset

    这三个值都可以用  ALTER TABLE table_name var = value;来改变

    engine 和 default charset 没什么,说下auto_increment:

    ①当你表中有50个值时,auto_increment是51,删去其中的若干个后auto_increment仍然是51,

      意味着如果你在下一次insert时没有指明自增列id的序号,他是从51开始标识的:insert into user value('zz',12,'');

      假如你将从上表中id=10-12-13的这三行删掉,并且将auto_increment的值改为11,那么紧接着你insert into user value('--','--','');时

      表中的id就会从11开始增长

    ②如果你设定auto_increment的值小于user表中现在存在的id值,那么这次更改不会出错,不会警告,不会生效。

  • 相关阅读:
    唯品会面经
    动态代理两种实现方式
    腾讯运营开发面经
    MySQL一些中重要命令
    金山wps面经
    三七互娱面经
    排序算法之快速排序(Quicksort)解析
    全排列算法分析(原创方法/一般方法/字典序法)
    WinForm如何去掉右边和下边的白边
    Java异常处理机制的秘密
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/2398119.html
Copyright © 2011-2022 走看看