*insert高级用法*

1、语法:insert into tbname(字段列表) values 值列表;

  1.1可以不将所有的字段都插入数据。如果说需要完成部分字段的插入,需要必须存在字段列表。
没有插入的字段,使用默认值填充。
  insert into a_table (name) values ('jack');

  1.2如果插入部分字段,可以使用下面的set语句,不同字段用逗号隔开:
  insert into a_table set a_id=7,a_name='rose';

  1.3值列表的语法,可以一次性插入多条数据,每条数据采用记录构造符 “括号”完成即可。
  insert into a_table (a_name,a_part) values ('老刘','设计部'),('老铁','财务部');

【问题】插入数据时,如果主键冲突会如何?

答:默认有主键约束,不会插入成功,但是可以在insert语法内,控制在主键冲突时,改成执行 更新 操作。
相当于,更新所冲突主键字段相对应的更新值。update 后不跟set

例子:
MariaDB [test]> insert into a_table (a_id,a_name) values (13,'aly');
ERROR 1062 (23000): Duplicate entry '13' for key 'PRIMARY'        #a_id为主键。

MariaDB [test]> insert into a_table (a_id,a_name) values (13,'aly')
-> on duplicate key update a_name='bob';                        #把a_id=13中的a_name字段更新成bob。

【插入数据失败流程】
判断是否插入数据成功--->>失败(主键冲突|唯一索引冲突)--->>更新

2、插入的数据源:

  2.1除了使用自定义数据外,还可以是使用select语句查询到的数据,作为插入的数据源。
  insert into a_table (a_name,a_part) select b_name,b_part from b_table;

  2.2数据可以来源于其它数据表,要求:字段数量和类型一致即可。
  insert into a_table (a_name,a_part) select name,sex from stu_info;

3、通过强制使用default关键字,或者default()函数,使用默认值:
insert into teacher values
(13,'alex','male',default),
(14,'bob','male',default(days));

*replace替换高级用法*

1、语法:replace into,与on duplicate key update,非常相似,只要主键冲突就替换,不冲突就直接插入数据。
    例子:replace into b_table values (2,'laowang','mishubu');

插入数据:insert,replace的更多相关文章

  1. MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理

    MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...

  2. 批量插入数据@Insert

    // 批量插入数据 @Insert("<script>" + "insert into index_kline (currency_id, currency, ...

  3. mysql数据库中插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...

  4. 插入数据insert语句中出错:没有与这些操作数匹配的“+”运算符,操作数类型为:const char[ ]+CString

    UpdateData(); CString n; n.Format(L"%d", m_n); _bstr_t strCmd_n = "insert into n(材料,折 ...

  5. oracle 通过查询灵活插入数据 insert into ...select..

    insert into reg_user (id,name,password,area_code,reg_time,first_pswd,record_type) select l.reg_user_ ...

  6. 批量插入数据insert into select示例

    //增加 $addSql =" insert into hxqc_auth_group_limits(group_id,company_id)"; foreach ($add_da ...

  7. Mysql常用sql语句(22)- insert 插入数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...

  8. olacle数据库员工表的创建,及插入数据,添加约束,删除列,查询数据的sql语句

    ---删除原有的员工表drop TABLE employee;---创建员工表CREATE TABLE employee       (       empno NUMBER(4) NOT NULL, ...

  9. mysql插入数据与删除重复记录的几个例子(收藏)

    mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...

  10. oracle插入数据

    插入数据 insert into comm_error_code_def (ID, ERR_MESSAGE, ERR_CODE, ERR_DESC, NAME, MISC_DESC, STATUS, ...

随机推荐

  1. spring中实现基于注解实现动态的接口限流防刷

    本文将介绍在spring项目中自定义注解,借助redis实现接口的限流 自定义注解类 import java.lang.annotation.ElementType; import java.lang ...

  2. MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text

    MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text java.lang.ClassCastException ...

  3. Hackintosh相关资源站

    猫叔博客 https://www.maoshu.cc/ 大神RehabMan https://bitbucket.org/RehabMan/ dsdt/ssdt打补丁译文 https://blog.c ...

  4. 获取URL 地址传值 防止乱码

    //页面传值 function a() { var usernamelogin = $("#LoginNamelbl").text(); location.href =" ...

  5. 使用VS2017创建EF框架实例

    本文例子中使用环境:vs2017,sql server 2008 一,创建EF项目 1,解决方案添加.Net Framework类库项目,在新建的项目下新建项:data->ADO.NET实体数据 ...

  6. C3P0连接技术

    1.导入jar包(两个) c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar导入数据库驱动jar包 2.定义配置文件 配置文件名称:c3p0.proper ...

  7. ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II

    https://www.cnblogs.com/artech/archive/2007/09/13/891266.html 二.ASP.NET Runtime Pipeline(续ASP.NET Ht ...

  8. TC基础与自动化

    前言 互联网产品的测试常常要覆盖在不同网络下的表现,例如丢包,带宽受限,时延及抖动等网络较差的情况,为了测试场景的网络情况可定义及复现,就需要有个工具对弱网进行模拟.业界一些通用的弱网模拟工具,如NE ...

  9. this 的值到底是什么?一次说清楚

    this 的值到底是什么?一次说清楚 方应杭 ​ 杭州饥人谷教育科技有限公司 CTO 1,071 人赞同了该文章 你可能遇到过这样的 JS 面试题: var obj = { foo: function ...

  10. Django教程(2)

    from Django official document; Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发. from 编写你的第一个 Django 应用, ...