zoukankan      html  css  js  c++  java
  • mysql replace 使用注意,update的时候 删除从表数据

    使用REPLACE插入一条记录时,如果不重复,REPLACE就和INSERT的功能一样,如果有重复记录,REPLACE就使用新记录的值来替换原来的记录值。 
    使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑在同时使用DELETE和INSERT时添加事务等复杂操作了。 
    在使用REPLACE时,表中必须有唯一索引,而且这个索引所在的字段不能允许空值,否则REPLACE就和INSERT完全一样的。 
    在执行REPLACE后,系统返回了所影响的行数,如果返回1,说明在表中并没有重复的记录,如果返回2,说明有一条重复记录,系统自动先调用了DELETE删除这条记录,然后再记录用INSERT来插入这条记录。如果返回的值大于2,那说明有多个唯一索引,有多条记录被删除和插入。 
    REPLACE的语法和INSERT非常的相似,如下面的REPLACE语句是插入或更新一条记录。 
    REPLACE INTO users (id,name,age) VALUES(123, '赵本山', 50); 
    插入多条记录: 
    REPLACE INTO users(id, name, age) VALUES(123, '赵本山', 50), (134,'Mary',15); 
    REPLACE也可以使用SET语句 
    REPLACE INTO users SET id = 123, name = '赵本山', age = 50; 

    如果主键是其他表的外键,replace 执行update的时候会把其他表的记录删除,

  • 相关阅读:
    单一职责原则
    算法的设计与分析 -----图 (1)
    交换机
    子网掩码
    IP地址分类+网络号
    网络参考模型与5G协议
    什么是5G
    RxJAVA
    EventBus3.0的学习
    ButterKnife+Zelezny插件
  • 原文地址:https://www.cnblogs.com/a9999/p/7218942.html
Copyright © 2011-2022 走看看