MySQL中的小技巧(不断更新中)

来源:互联网 发布:app源码下载 编辑:程序博客网 时间:2024/05/22 01:30

操作系统为Ubuntu 15.10, MySQL数据库5.6.31-0ubuntu0.15.10.1-log

1. 判断表是否已经存在然后再进行创建

有很多方法可以进行判断,比如show table status like 'object_table'来查看,如下:

Selection_001.png

但是如果要在SQL语句中直接进行判断并进行创建则可以使用如下语句:

    create table if not exists object_table(        id int not null auto_increment,        ......    );

此时如果表已经存在,则不会进行创建;如果没有if not exists,进行重复创建的时候则会抛出错误,如下:

Selection_002.png

但是使用这个语句有一个问题,虽然进行创建的表的名字和已有表的名字重复时不会进行创建,但是该语句也不会校验已存在表的结构
是否和要创建的表的结构相同,而是默认采用已存在的表的结构。

2. 查看表的所有索引

使用show index from object_table,返回目标表的所有的索引信息,如下:

Selection_003.png

里面常见的属性意义如下(目前知道的):

  • Table:表名;
  • Non_unique:是否是唯一索引,0为唯一索引,1不是唯一索引;
  • Key_name:索引名称,如果索引是主键,则名称为PRIMARY;
  • Column_name:列名;
  • Collation:表明索引如何排序,A表明升序,NULL表明不排序;
  • Packed:表明索引如何压缩,如果不压缩则为NULL;
  • Null:表明该索引列是否可以为NULL,如果可以则为YES,如果不可以则为空字符串;
  • Index_type:索引类型,BTREE/FULLTEXT/HASH/RTREE;
0 0