赞
踩
注:add常用于操作已存在表新增某字段。
语法:
alter table 表名 add 字段名 字段数据类型(长度) [character set 字段编码 collate 字段排序编码] [NOT NULL] [DEFAULT 0] [COMMENT ‘备注’] [(FIRST)|(AFTER 表中已存在字段)]
其中,没有被[]括号包括的是必须有的,被[]括号包括的可以根据字段限制来自定义设置。
注:change常用于修改字段名称,但与modify一样。同样可以修改字段类型和长度。且修改后的字段,alter table语句中没有设置默认值等限制,原字段的限制将会被重置。如下例name1字段不会继承name字段的备注、默认值等信息。
语法:
alter table [表名] change [字段名] [字段新名称] [字段的类型]
例如:将a表的name改名为name1
alter table a change name name1 varchar(20);
注:modify常用于修改表中字段的类型和长度。
语法:
alter table [表名] modify column [字段名] [新数据类型(修改后的长度)]
例如:修改a表中name字段的类型为varchar,长度为20。然后再修改长度为30。
alter table a modify column name varchar(20);
alter table a modify column name varchar(30)
语法:
alter table 表名 drop column 字段名;
例如: 删除a表中的name字段
alter table a drop column name;
如果修改表字段后,未生效。执行下面的语句刷新表。
analyze table 表名
一般实际情况中,主键在建表时候就规定了且不会修改,但是如果后续需要修改,需要删除已存在主键再设置新的主键。
直接删除会报错。Multiple primary key defined
或者删除的主键是一个自增长列也会报错,要先移除自增长属性,再删除主键。
-- 移除a表id列的自增长属性
alter table a modify id int(10) unsigned;
-- 删除id主键
alter table a drop primary key;
-- 设置name为主键
alter table a add primary key(name);
-- 或者设置id、name为复合主键,也叫双主键
alter table a add primary key(id,name);
-- 表a新增name字段不许为空
alter table a add name varchar(20) NOT NULL;
-- 表a新增createyear字段默认值为2021
alter table a add createyear varchar(20) DEFAULT '2021';
-- 额外:删除字段默认值
alter table a alter createyear drop default;
-- 额外:给已存在字段添加默认值
alter table a alter createyear set default '2021';
alter table a auto_increment = 1;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。