zoukankan      html  css  js  c++  java
  • 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 



  • 相关阅读:
    计蒜客 奇怪的国家
    计蒜客 泥塑课
    计蒜客 判断质数
    hiho #1143 : 骨牌覆盖问题·一 (运用快速幂矩阵)
    二叉树建立,先序、中序、后序遍历(c实现)
    hiho #1272 买零食 [Offer收割]编程练习赛2
    hiho #1283 hiho密码 [Offer收割]编程练习赛3
    hiho #1288 微软2016.4校招笔试题 Font Size
    hiho一下 第九十八周 搜索一·24点
    hiho一下 第九十七周 数论六·模线性方程组
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4487553.html
Copyright © 2011-2022 走看看