• 删除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重要了。
  • 相关阅读:
    利用KINECT+OPENCV检测手势的演示程序
    关于PPC软件的开发库
    FlashGet的IE加载项与IE8不兼容
    ubuntu9.04 安装字体 后记
    【pys60笔记】中文
    【pys60学习笔记】S60 模拟器使用。
    ubuntu9.04 安装字体
    IDE硬盘安装Windows 7 7106(光驱与硬盘共用一个IDE)
    易歌——web在线听歌桌面程序。带全局键控制。
    MapX直连Oracle——MapX5配合Oracle时,对中文表名支持不好
  • 原文地址:https://www.cnblogs.com/leeqq/p/3936956.html
Copyright © 2020-2023  润新知