zoukankan      html  css  js  c++  java
  • 删除MySQL中冗余字段

    去除表deny_mail中email,type重复的字段
    设计deny_mail表时未考虑到唯一性,导致插入了许多重复数据,现编写数据库语句修正之。
     
    步骤1:建立临时表tmp存储冗余键信息
    1)create table tmp as select min(id),type,mail from deny_mail having count(type,email)>1  group by type,email;
    步骤2:根据临时表删除冗余信息
    2)delete from deny_mail where id not in (select id from tmp) having count(type,email)>1 group by type,email;
       步骤3:删除临时表
    3)drop table tmp;
    步骤4:给表添加唯一键
    4)alter table deny_mail add constraint job_unique unique (type,email);
     
    mysql> desc deny_mail;
    +-------------+------------------+------+-----+-------------------+----------------+
    | Field       | Type             | Null | Key | Default           | Extra          |
    +-------------+------------------+------+-----+-------------------+----------------+
    | email       | varchar(255)     | NO   | MUL | NULL              |                | 
    | type        | int(10) unsigned | NO   |     | 0                 |                | 
    | create_time | timestamp        | NO   |     | CURRENT_TIMESTAMP |                | 
    | reason      | varchar(255)     | YES  |     | NULL              |                | 
    | otherReason | varchar(255)     | YES  |     | NULL              |                | 
    | id          | int(10) unsigned | NO   | PRI | NULL              | auto_increment | 
    +-------------+------------------+------+-----+-------------------+----------------+
    mysql> show create table deny_mail;
    | Table     | Create Table                                                                       
    CREATE TABLE `deny_mail` (
      `email` varchar(255) NOT NULL,
      `type` int(10) unsigned NOT NULL default '0',
      `create_time` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `reason` varchar(255) default NULL,
      `otherReason` varchar(255) default NULL,
      `id` int(10) unsigned NOT NULL auto_increment,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `email` (`email`,`type`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1698 DEFAULT CHARSET=latin1
     
    数据库基础太TM重要了。
  • 相关阅读:
    ubuntu20.04.2设置配置静态ip方法
    如何在windows10上面运行HyperLedger Fabric1.4
    powershell中临时修改环境变量
    openssl查看pem格式证书细节
    git clone的时候遭遇fatal: early EOF fatal: index-pack failed解决办法
    修改sourcetree的推送账户
    ubuntu上kafka的配置与使用(二)--kafka和zookeeper集群的配置(kafka自带的zookeeper)
    ubuntu上kafka的配置与使用(一)--单机kafka的配置
    李航老师的《统计学习方法》第二章算法的matlab程序
    第8题——计算糖果
  • 原文地址:https://www.cnblogs.com/leeqq/p/3936956.html
Copyright © 2011-2022 走看看