mysql中我已经建了表,怎样给指定的字段添加自动增长
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中我已经建了表,怎样给指定的字段添加自动增长相关的知识,希望对你有一定的参考价值。
我建表的时候忘记给字段添加自动增长,请问现在我该如何实现给指定的字段添加自动增长
右键设计表,选中字段,【自动递增】打勾
参考技术A 只需要在后面添加一句identity(1,1)第一个1是从1开始,第二个1是每次增长1。就这么简单 参考技术B ALTER TABLE tablename DROP id;ALTER TABLE tablename ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST 参考技术C 已有主键字段id:
create table student(
id int(4) primary key comment '学号',
name varchar(50) not null comment '姓名',
sex char(2) not null default '男' comment '性别',
)comment='学生表';
现在给id添加自增:
alter table student change id id int(4) auto_increment;
MySQL使用游标给指定数据库的所有表添加字段
今天,主管让我在数据库的每张表都添加两个字段,数据库里有好几百张表,逐个去添加显然太费时,并且可能会出差错,例如会漏掉几张表没加的情况。
楼主想到使用游标可以轻松地解决这个问题,以下是我用mysql写的测试代码,不多说,直接上代码:
use studentcourse; delimiter $$ drop procedure if exists addcolumn; create procedure addcolumn() BEGIN declare tablename varchar(50); #存储表名 declare str varchar(50); #要执行的sql declare num int; #表数量 declare cur cursor FOR select table_name from information_schema.tables where table_schema = ‘studentcourse‘; #定义游标并赋值所有的表名 select count(*) from information_schema.tables where table_schema = ‘studentcourse‘ into num; #查找该数据库的表数量 open cur; #打开游标 while num > 0 DO #循环 fetch cur into tablename; set @sqlstr = concat(‘alter table ‘, tablename, ‘ add column condition2 varchar(50) not null‘); #使用concat拼接sql语句,注意相邻字符的拼接要留空格 prepare str from @sqlstr; #预编译 execute str; #执行语句 DEALLOCATE PREPARE str; #释放预编译 set num = num - 1; end while; end $$ delimiter call addcolumn; #调用存储过程
执行完之后,可以看到返回影响行数,不过返回的数值跟我数据库的表数量不一致。不过我查看了表结构,每张表都成功添加了这个字段。
本人是菜鸟,想将自己学习到的内容记录下来,也可以给其他人提供参考,不喜勿喷,谢谢!
以上是关于mysql中我已经建了表,怎样给指定的字段添加自动增长的主要内容,如果未能解决你的问题,请参考以下文章
MySql中怎样给字段、列添加注释?怎样查看字段或列的注释?
MySql中怎样给字段、列添加注释?怎样查看字段或列的注释?