• mysql 数据库插入语句之insert into,replace into ,insert ignore


    近期才发现mysql的插入语句竟然有如此多的使用方法,这里拿来分享一下.

    ①关于insert into :

      insert into table_name values();

      insert into table_name (column) values ();

      insert into table_name values(select (column) from table_name2);

    这里的插入仅仅须要注意一点的就是:

    假设发生主键冲突,(也就是插入的主键已经在表中存在时),系统报错.

    ②replace into :

      replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 假设发现表中已经有此行数据(依据主键或者唯一索引推断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
    要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现反复的数据。

    ③insert ignore into

      insert ignore into 与 insert into 的主要差别在于当发生主键冲突的时候,系统不会报错,直接跳过该条记录的插入.

    感觉是不是非常有意思呢...

    以下我们来做个实验.

    create table test (

    `id`  int(11) not null  auto_increment comment '主键',

    `name` varchar(20) not null comment '姓名',

    primary key (`id`)

    )ENGINE=InnoDB DEFAULT CHARSET utf8 comment='測试表';


    然后我们插入几条数据进去.

    insert into test (name) values ('vein');

    insert into test (name) values ('vein1');

    insert into test (name) values ('vein2');

    当运行以下这条语句时:

    insert into test (id,name) values (1,'vein11');

    系统会报错,说主键冲突.

    假设运行以下的语句时:

    insert ignore into test (id,name) values (1,'vein11');

    系统不会报错,直接忽略.

    replace into test(id,name) values(1,'vein11');

    系统插入成功,而且改动表中记录为

    1, vein11.


    Edited by VeinQueen 



  • 相关阅读:
    saltstack
    python一个命令开启http服务器
    常用服务安装部署
    位置1
    linux中python3安装和使用
    Linux基础系统优化
    Shell基本命令
    linux系统目录结构
    远程连接linux服务器
    VMware和Centos安装使用
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4487553.html
Copyright © 2020-2023  润新知