Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

第 12 章 DML (Data Manipulation Language)

目錄

12.1. INSERT
12.1.1. INSERT INTO ... SELECT
12.1.2. INSERT IGNORE
12.1.3. INSERT...ON DUPLICATE KEY UPDATE
12.2. REPLACE
12.3. DELETE
12.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
	

12.1. INSERT

12.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;
			

12.1.2. INSERT IGNORE

INSERT IGNORE 與INSERT INTO的區別就是INSERT IGNORE會忽略資料庫中已經存在 的數據,如果資料庫沒有數據,就插入新的數據,如果有數據的話就跳過這條數據。

insert ignore into table(name)  select  name from table2
			

12.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 |
+----+------+