【场景】:创建新表,如果存在则返回 【分类】:创建新表、create table if not exists table_name

分析思路

难点:

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

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

创建表

--创建新表,如果存在则覆盖
drop table [if exists] 表名;
--创建新表,如果存在则返回
create table
[if not exists] 表名 -- 不存在才创建,存在就跳过
(<列名1> <数据类型> -- 列名和类型必选
  [ primary key -- 可选的约束,主键
   | foreign key  -- 外键,引用其他表的键值
   | auto_increment -- 自增ID
   | comment <注释> -- 列注释(评论)
   | default <值> -- 默认值
   | unique -- 唯一性约束,不允许两条记录该列值相同
   | not null -- 该列非空,输入空会报错
   | current_timestamp -- 当前时间戳
  ], ...
) [character set <字符集名>] -- 字符集编码
[collate <校对规则名>] -- 列排序和比较时的规则(是否区分大小写等)

扩展

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

求解代码

create table if not exists user_info_vip(
    id int(11) primary key auto_increment comment'自增ID',
    uid int(11) unique not null comment '用户ID',
    nick_name varchar(64) comment'昵称',
    achievement int(11) default 0 comment '成就值',
    level int(11) comment '用户等级',
    job varchar(32) comment '职业方向',
    register_time datetime default current_timestamp comment '注册时间'
)character set utf8 collate utf8_general_ci