当前位置: 首页 > news >正文

第 51 章 DML (Data Manipulation Language)


目录

51.1. INSERT
51.1.1. INSERT INTO ... SELECT 51.1.2. INSERT IGNORE 51.1.3. INSERT...ON DUPLICATE KEY UPDATE
51.2. REPLACE 51.3. DELETE
51.3.1. 删除重复数据
SELECT - retrieve data from the a database
INSERT - insert data into a table
UPDATE - updates existing data within a table
DELETE - deletes all records from a table, the space for the records remain
CALL - call a PL/SQL or Java subprogram
EXPLAIN PLAN - explain access path to data
LOCK TABLE - control concurrency
	

51.1. INSERT

51.1.1. INSERT INTO ... SELECT

SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='';
DELIMITER //
CREATE TRIGGER `members_mobile_insert` BEFORE INSERT ON `members_mobile` FOR EACH ROW BEGIN
	insert into members_location(id,province,city) select NEW.id,mobile_location.province,mobile_location.city from  mobile_location where mobile_location.id = md5(LEFT(NEW.number, 7));
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
			

51.1.2. INSERT IGNORE

INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。

insert ignore into table(name)  select  name from table2
			

51.1.3. INSERT...ON DUPLICATE KEY UPDATE

			
create table foo (id serial primary key, u int, unique key (u));

insert into foo (u) values (10);
insert into foo (u) values (10) on duplicate key update u = 20;

mysql> select * from foo;
+----+------+
| id | u    |
+----+------+
|  1 |   20 |
+----+------+
			
			
			
DROP TRIGGER IF EXISTS `cms`.`jc_content_BEFORE_DELETE`;

DELIMITER $$
USE `cms`$$
CREATE DEFINER=`5kwords`@`%` TRIGGER `jc_content_BEFORE_DELETE` BEFORE DELETE ON `jc_content`
FOR EACH ROW BEGIN

    insert into `cms`.elasticsearch_trash(id) values(OLD.content_id) on duplicate key update ctime = now();
    insert into `cms`.trash(id,`type`, site_id) values(OLD.content_id, "delete", OLD.site_id) on duplicate key update `type`="delete", ctime = now();

END$$
DELIMITER ;

			




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

相关文章:

  • html2练习
  • C++查缺补漏,赶紧的
  • Mac批量转换mp3为caf
  • RxSwift
  • 1.3. 服务器部署与网络拓扑
  • MySQL 大表优化方案
  • 004-unity3d MonoBehaviour脚本方法简介
  • JS-DOM的知识点及应用
  • 怎样做网站优化才能更有效的吸引蜘蛛来访?
  • centos--git搭建之Gogs安装
  • 记一次kafka故障
  • Visual Studio Code支持JUnit
  • “大数据应用场景”之隔壁老王(连载四)
  • vfp9写的爬虫前段,基于webbrowser
  • CSS定宽居中的实现方案
  • [数据结构]链表的实现在PHP中
  • 【347天】每日项目总结系列085(2018.01.18)
  • 30天自制操作系统-2
  • input的行数自动增减
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java 多线程编程之:notify 和 wait 用法
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • LeetCode算法系列_0891_子序列宽度之和
  • Python - 闭包Closure
  • React as a UI Runtime(五、列表)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Windows Containers 大冒险: 容器网络
  • Zsh 开发指南(第十四篇 文件读写)
  • 彻底搞懂浏览器Event-loop
  • 从tcpdump抓包看TCP/IP协议
  • 记一次和乔布斯合作最难忘的经历
  • 解析 Webpack中import、require、按需加载的执行过程
  • 力扣(LeetCode)965
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 王永庆:技术创新改变教育未来
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • python最赚钱的4个方向,你最心动的是哪个?
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #LLM入门|Prompt#3.3_存储_Memory
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (转)甲方乙方——赵民谈找工作
  • ..回顾17,展望18
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET中 MVC 工厂模式浅析
  • /*在DataTable中更新、删除数据*/
  • @RequestMapping-占位符映射