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值,那么这次更改不会出错,不会警告,不会生效。

  • 相关阅读:
    滑动窗口法与剑指offer:和为S的连续正数数列 与 和为S的两个数字
    数组中的逆序对与归并中的分治思想
    重读STL源码剖析:迭代器
    重读深度探索C++对象模型:函数
    FreeMarker笔记 前言&第1章 入门
    分享我的PL/SQL的优化设置,为开发全面提速
    迅影QQ视频查看v2.0 源码
    Invalid encoding name "UTF8". 报错 XML
    [HNOI2003]消防局的设立
    We need water!
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/2398119.html
Copyright © 2011-2022 走看看