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

posted @ 2012-03-15 15:12  myD  阅读(537)  评论(0编辑  收藏  举报