您当前的位置: 首页 >  sql

小志的博客

暂无认证

  • 3浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL5.7新增数据避免重复记录

小志的博客 发布时间:2021-07-10 16:50:02 ,浏览量:3

目录
    • 一、MySQL5.7新增数据避免数据重复的语法
    • 二、MySQL5.7新增数据避免数据重复的演示示例
      • 1、建表并初始化假数据
      • 2、创建唯一索引
      • 3、插入用户名、邮箱和创建时间三个属性值的数据已经存在用户表中的数据,会提示警告,并不会插入数据成功
      • 4、插入用户名、邮箱和创建时间三个属性值的数据其中只要有一个值与用户表中的用户名、邮箱和创建时间的数据不同,都会插入数据成功。

一、MySQL5.7新增数据避免数据重复的语法 语法数据已存在数据不存在insert ignore忽略插入 二、MySQL5.7新增数据避免数据重复的演示示例

示例需求,例如用户表中油id,用户名,年龄,邮箱、创建时间五个属性,如果用户名、邮箱和创建时间三个属性值的数据已经存在用户表中,则不插入数据,否则插入数据。

1、建表并初始化假数据
  • 创建用户表

    CREATE TABLE `sys_user` (
      `id` int(8) NOT NULL,
      `user_name` varchar(50) DEFAULT NULL,
      `user_age` int(2) DEFAULT NULL,
      `user_email` varchar(50) DEFAULT NULL,
      `create_time` datetime DEFAULT NULL,
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    在这里插入图片描述

  • 新增一条数据

    INSERT IGNORE INTO sys_user(id,user_name, user_age,user_email,
    create_time) VALUES(2,"张三", 28,'111@qq.com','2021-07-10 16:23:11');
    

    在这里插入图片描述

2、创建唯一索引
  • 给用户名、邮箱和创建时间三个属性创建唯一索引

    ALTER TABLE sys_user ADD CONSTRAINT ix_name_email_time
    UNIQUE(user_name,user_email,create_time);
    

    在这里插入图片描述

  • 查看索引

    #查看用户表的索引
    SHOW INDEX FROM sys_user;
    

    在这里插入图片描述

  • 删除索引语法如下:

    ALTER TABLE sys_user DROP INDEX ix_name_email_time;
    
3、插入用户名、邮箱和创建时间三个属性值的数据已经存在用户表中的数据,会提示警告,并不会插入数据成功
INSERT IGNORE INTO sys_user(id,user_name, user_age,user_email,
create_time) VALUES(2,"张三", 28,'111@qq.com','2021-07-09 14:08:11');

在这里插入图片描述 在这里插入图片描述

4、插入用户名、邮箱和创建时间三个属性值的数据其中只要有一个值与用户表中的用户名、邮箱和创建时间的数据不同,都会插入数据成功。
  • 插入的用户名不同,邮箱和创建时间的值相同,即可插入成功。

    INSERT IGNORE INTO sys_user(id,user_name, user_age,user_email,
    create_time) VALUES(2,"李四", 28,'111@qq.com','2021-07-10 16:23:11');
    

    在这里插入图片描述 在这里插入图片描述

  • 插入的邮箱不同,用户名和创建时间的值相同,即可插入成功。

    INSERT IGNORE INTO sys_user(id,user_name, user_age,user_email,
    create_time) VALUES(2,"张三", 28,'222@qq.com','2021-07-10 16:23:11');
    

    在这里插入图片描述 在这里插入图片描述

  • 插入的创建时间不同,用户名和邮箱的值相同,即可插入成功。

    INSERT IGNORE INTO sys_user(id,user_name, user_age,user_email,
    create_time) VALUES(3,"张三", 28,'111@qq.com','2021-07-10 16:23:30');
    

    在这里插入图片描述 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.2802s