mySQL中如何修改列为自动增长?急!!!alter table questionlib modify id int(11) auto_increment;
注意事项:
修改后从下一条记录开始自动增长 。如果想让原来的自动增长就得复制现有表的结构(无id),添加id并加上AUTO_INCREMENT,然后通过循环,添加n条空记录 , 然后对应先前表的id,依次插入数据 。
扩展资料:
mysql自动增长开始值设置总结
1、创建表,设置表主键id自动增长,默认自动增长的起始值为1开始 。
2、当表数据不为空的时候 , 重新去修改自动增长id开始值,mysql会主动去核对你设置的起始值是否是当前数据库已有id的最大值+1; 若是则修改成功 , 若不是则修改不成功 (默认还是id最大值+1)
3、要设置自动增长为1开始,需要清空表数据才行 。alter table table_name AUTO_INCREMENT=1
4、若每次直接在数据库里面插入数据,则会自动的去修改当前表的自动增长起始值(设置自动增长起始值为当前插入成功的数据的id)
MySQL中如何增加递增数据方法一:
如果曾经的数据都不需要的话,可以直接清空所有数据 , 并将自增字段恢复从1开始计数
truncate
table
表名
方法二:
dbcc
checkident
('table_name',
reseed,
new_reseed_value)
当前值设置为
new_reseed_value 。如果自创建表后没有将行插入该表,则在执行
dbcc
checkident
后插入的第一行将使用
new_reseed_value
作为标识 。否则,下一个插入的行将使用
new_reseed_value
+
1 。如果
new_reseed_value
的值小于标识列中的最大值,以后引用该表时将产生
2627
号错误信息 。
方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突 。
$sql="delete
from
$table_vote";
mysql_query($sql,
$link);
$sql="alter
table
$table_vote
auto_increment=1";
mysql_query($sql,
$link);
mysql 数据库 给字段添加递增列主键和主键的自动递增字段
每个表都应有一个主键字段 。主键用于对表中的行(注:列表中的每一行)进行唯一标识 。每个主键值(注:行)每在表中必须是唯一的 。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位 。主键字段永远要被编入索引 。这条规则没有例外 。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行 。下面的例子把 personID 字段设置为主键字段 。主键字段通常是 ID(注:IDnetity的缩写,身份标识号码的意思) 号 , 且通常使用 AUTO_INCREMENT(注:increment,中文意思是增加的意思) 设置 。AUTO_INCREMENT 会在新记录(注:)被添加时逐一增加该字段的值 。要确保主键字段不为空,我们必须向该字段添加 NOT NULL(注:不为空) 设置 。
关系型数据库的特点在于多个表之间使用关系联系起来这样可以显著降低数据库的容量,并提高维护效率主键并不是必须的但是增加主键对单表查询的效率提升很高所以从原理上来说只要该字段绝对不会重复那么使用任何类型的字段,比如你上面所说的人名也是可以的但是如果考虑到与其它表的相互连接使用人名的可操作性就不是很好所以,第一点,建议你另外增加一个自动编号的字段作为id,用来做主键第二点,关系型数据库的特点就是多表之间有冗余,但是实际上是降低了整个数据库的维护难度,鉴于你看起来对关系型数据库原理不清楚更建议你先把关系型数据库原理再看看
- mysql游标和存储过程是什么 mysql游标表名为变量
- 如何使用cmd命令行提示符登录mysql服务器 cmd中登陆mysql
- mysql怎么设置时区 mysql时间显示设置
- 招聘要精通mysql
- mysql 65535 8192 限制 mysql限制资源使用
- mysql有topn
- mysql协议包解析 mysqlicp协议
- mysql子查询和连接查询 mysql子查询插入
- Mysql使用索引查询 mysql使用round
- 云服务器游戏出现黑屏问题怎么解决? 云服务器游戏黑屏怎么办
