题解 119 | #修改表#

【场景】:修改表 【分类】:直接修改、删除后修改

分析思路

难点:

1.如果该表已经被其他分析师创建过了,正常返回即可,所以要先判断表是否存在,如果存在返回,不存在再执行创建的动作。 新学到:

[使用]:show full fields from table_name 可以查看表中的字段

方法一、删除表之后重建表

先使用drop再使用create

  • [使用]:drop table if exists table_name; create table if not exists table_name

方法二、直接修改表

在 某一列 之后增加 一列

  • [使用]:add column 新增列 after 某一列

修改 某一列 为 新内容

  • [使用]:change column 某一列 新内容
  • [注意]:change可以用于修改列名和属性。所以这里使用change而不是modify

更正 某一列 为 修改内容

  • [使用]:modify column 某一列 修改内容
  • [注意]:modify 用于修改较小的内容,例如列名不可修改。这里使用change也可以

建议:修改列属性时使用modify;修改列名使用change。

扩展

前往查看:MySQL 表的创建、复制、修改与删除

求解代码

方法一:

删除表之后重建表

drop table if exists user_info;
create table if not exists user_info (
    id int primary key auto_increment comment '自增ID',
    uid int unique not null comment '用户ID',
    `nick_name` varchar(64) comment '昵称',
    achievement int default 0,
    level int comment '用户等级',
    school varchar(15),
    profession varchar(10),
    register_time datetime default current_timestamp comment '注册时间'
)character set utf8 collate utf8_general_ci;

方法二:

直接修改表 + change + modify

alter table user_info 
    add column school varchar(15) after level,
    change column job profession varchar(10),
    modify column achievement int(11) default 0

方法三:

直接修改表 + change

alter table user_info 
    add column school varchar(15) after level,
    change column job profession varchar(10),
    change column achievement achievement int(11) default 0
全部评论

相关推荐

14 9 评论
分享
牛客网
牛客企业服务