*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. vue.js中使用离线检测

    Html5在window.navigator对象上添加了一个属性onLine 返回布尔值 true表示在线.同时新增了两个事件: window.addEventListener('online', f ...

  2. PP: Neural ordinary differential equations

    Instead of specifying a discrete sequence of hidden layers, we parameterize the derivative of the hi ...

  3. js替换从excel复制的文本的换行

    var newStr=oldStr.replace(/\n/g,','); 该代码即可将文本中的换行替换为, oldStr为从excel复制过来的值  newStr为替换后的值

  4. python之路函数

    1.函数参数,引用 2.lambda表达式 lambda表达式 f1 = lambda a1,a2: a1+a2 3.python的内置函数 abs(),绝对值 all(),循环参数,如果每个元素都为 ...

  5. Oracle体系结构中基本概念,数据库

    在Oracle体系结构中包含了基本概念即Oracle数据库与实例,如果你想要了解Oracle体系结构的话,你就必须要了解这两个基本的概念,以下是文章的具体介绍,望你浏览完以下的内容会有所收获. 数据库 ...

  6. PHP程序员应该如何提升

    PHP程序员应该如何提升 尤其不认可W3school之类的东西,不够深度,理解不深,比起这个更建议看官方文档,中文不清楚,看英文的. 入门视频:入门视频推荐:哈佛大学公开课:构建动态网站Beginne ...

  7. centos下配置mongodb定期备份

    https://brickyang.github.io/2017/03/02/Linux-%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD-MongoDB/ 1.创建备份脚本 ...

  8. [CCPC2019秦皇岛] E. Escape

    [CCPC2019秦皇岛E] Escape Link https://codeforces.com/gym/102361/problem/E Solution 观察到性质若干然后建图跑最大流即可. 我 ...

  9. SP1716 GSS3 - Can you answer these queries III - 动态dp,线段树

    GSS3 Description 动态维护最大子段和,支持单点修改. Solution 设 \(f[i]\) 表示以 \(i\) 为结尾的最大子段和, \(g[i]\) 表示 \(1 \sim i\) ...

  10. Javaweb项目不需要端口号及项目名的访问配置(已备注)

    1.不需要端口号的配置: 在server.xml中找到节点: <Connector URIEncoding="UTF-8" connectionTimeout="2 ...