第 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 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
3月前
|
关系型数据库 MySQL 索引
Multiple-Column Indexes
MySQL 支持创建复合索引(多列索引),最多由 16 列组成,适用于查询中所有或部分列的查找。复合索引如同排序数组,通过连接索引列值创建。正确排列的单个复合索引能加速多种查询。若索引列非最左侧前缀,MySQL 无法使用索引查找。此外,还可引入基于其他列信息“哈希”的列作为替代方案,提高查询效率。
|
SQL 分布式计算 HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
|
SQL Java HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
|
SQL 关系型数据库 MySQL
MySQL数据库:第十四章:(DML)Data Manipulation Language数据操纵语言
MySQL数据库:第十四章:(DML)Data Manipulation Language数据操纵语言
|
SQL XML 缓存
《Orca: A Modular Query Optimizer Architecture for Big Data》
Orca: A Modular Query Optimizer Architecture for Big Data
《Orca: A Modular Query Optimizer Architecture for Big Data》
|
XML 分布式计算 算法
Orca: A Modular Query Optimizer Architecture for Big Data
在之前的几片paper笔记中,对最为主流的两套优化器框架进行了解读,包括bottom-up dynamic programming的search策略和基于Top-down memorization的search策略
399 0
Orca: A Modular Query Optimizer Architecture for Big Data
|
存储 SQL 关系型数据库
|
存储 SQL 关系型数据库