mysql的auto_incremnet操作
来源:互联网 发布:正版cad软件多少钱 编辑:程序博客网 时间:2024/05/21 06:33
在堆mysql数据库创建表时,如果我们把某个属性设置为auto_increment,也就是自动增长,我们在不要某行数数据时,当然是要删除该数据了,但是,有一个问题,摆在我们面前,数据时删除了,而新插入的数据的该属性值,不是在原来的基础上增加的,而是在删除的基础上增加的,这让人很不舒服,比如:
因为这张表已经创建了,我需要把这张显示出来:mysql> show create table user1 \G;//创建的表Create Table: CREATE TABLE `user1` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `uname` char(20) NOT NULL, `cid` int(11) DEFAULT '1', PRIMARY KEY (`uid`), KEY `idx_uname` (`uname`), KEY `idx_cid` (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;//这是没删除的数据mysql> select * from user1;+-----+-------+------+| uid | uname | cid |+-----+-------+------+| 1 | jack | 1 || 2 | mark | 1 || 3 | mary | 2 || 4 | rose | 5 |+-----+-------+------+4 rows in set (0.00 sec)//删除uid为2和3的数据mysql> delete from user1 where uid=2 or uid =3;Query OK, 2 rows affected (0.00 sec)//删除后的数据mysql> select * from user1;+-----+-------+------+| uid | uname | cid |+-----+-------+------+| 1 | jack | 1 || 4 | rose | 5 |+-----+-------+------+2 rows in set (0.00 sec)//我们通过批处理重新插入数据mysql> insert into user1(uname,cid) values('alice',10),('alan',5),('jan',6);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0//重新查询数据mysql> select * from user1;+-----+-------+------+| uid | uname | cid |+-----+-------+------+| 1 | jack | 1 || 4 | rose | 5 || 5 | alice | 10 || 6 | alan | 5 || 7 | jan | 6 |+-----+-------+------+5 rows in set (0.00 sec)
这个数据明显不是我们想要的数据,我们怎么办呢?
1、首先删除uid这个字段
2、在该表的第一列中新建该字段,会有神奇地事情出现
//我们删除这个uid这个字段(属性)mysql> alter table user1 drop uid;Query OK, 5 rows affected (0.09 sec)Records: 5 Duplicates: 0 Warnings: 0//重新查询mysql> select * from user1;+-------+------+| uname | cid |+-------+------+| jack | 1 || rose | 5 || alice | 10 || alan | 5 || jan | 6 |+-------+------+5 rows in set (0.00 sec)//再新建一个新的uidmysql> alter table user1 add column uid int primary key auto_increment first;Query OK, 0 rows affected (0.08 sec)Records: 0 Duplicates: 0 Warnings: 0//这是新建后的数据mysql> select * from user1;+-----+-------+------+| uid | uname | cid |+-----+-------+------+| 1 | jack | 1 || 2 | rose | 5 || 3 | alice | 10 || 4 | alan | 5 || 5 | jan | 6 |+-----+-------+------+5 rows in set (0.00 sec)
* ps:我们决不能在插入数据的同时,采用这样删除再创建的方式,因为,这样会使数据造成混乱 *
阅读全文
0 0
- mysql的auto_incremnet操作
- MySQL的基本操作
- mysql的数据库操作
- Mysql的基本操作
- mysql的常用操作
- mysql的一些操作
- MySQL的基本操作
- MySQL的常用操作
- mysql的操作
- mysql的操作大全
- MySQL的基本操作
- mysql的基本操作
- Mysql的一些操作
- mysql视图的操作
- MySql的基本操作
- Linux的MySQL操作
- MySql 的操作日志
- MySQL数据库的操作
- Tomcat配置登录拦截功能
- jquery事件函数无法使用
- Shader山下(二十七)平面阴影
- MS_SQL模糊查询like和charindex的对比
- 安卓——读取到手机通讯录中的好友的备注信息
- mysql的auto_incremnet操作
- 【Android源码】从源码角度深入理解Android中Dialog、PopUpWindow、Toast区别
- jQuery随机抽中手机号码抽奖代码
- Yii框架学习之路
- MYSQL实现Oracle的Start with…Connect By递归树查询
- TestNG实现日志输出
- JQuery validate 下拉菜单验证
- 3-4.栈与队列
- Python checkio Pawn Brotherhood解决方案