MySQL - 替换数据

MySQL - 替换数据 首页 / MySQL入门教程 / MySQL - 替换数据

MySQL中的replace语句是SQL标准的扩展名。此语句与INSERT语句相同,当无涯教程想要将现有记录更新到表中以使其更新时,需要此语句。replace命令需要两个操作之一:

  • 如果没有现有数据行找到匹配值,则执行标准插入语句。
  • 如果找到重复的记录,则replace命令将删除现有行,然后在表格中添加新记录。

在replace语句中,更新以两步执行。首先,它将删除现有记录,然后添加新更新的记录,类似于标准插入命令。因此,无涯教程可以说replace语句执行两个标准函数, delete 和 insert

以下是replace mysql 的语句的语法:

REPLACE [INTO] table_name(column_list)
VALUES(value_list);

replace示例  - 首先,无涯教程将使用以下语句创建一个名为"person"的表:

CREATE TABLE Person (
  ID int AUTO_INCREMENT PRIMARY KEY,
  Name varchar(45) DEFAULT NULL,
  Email varchar(45) DEFAULT NULL UNIQUE,
  City varchar(25) DEFAULT NULL
);

接下来,无涯教程需要使用insert语句将记录填充到表中:

INSERT INTO Person(ID, Name, Email, City) 
VALUES (1,'Mike', 'mike@learnfk.com', 'California'), 
(2, 'Alexandar', 'alexandar@learnfk.com', 'New York'), 
(3, 'Adam', 'adam@learnfk.com', 'Los Angeles'),
(4, 'Peter', 'Peter@learnfk.com', 'Alaska');

执行 SELECT验证以下输出中可以显示的记录:

MySQL REPLACE

验证数据后,无涯教程可以使用replace语句用新行Replace任何旧行。执行以下声明,更新ID为4 的 city。

REPLACE INTO Person (id, city)
VALUES(4,'Amsterdam');

成功执行上述声明后,需要再次查询表格的数据以验证Replace替换。

MySQL REPLACE

Name Email列的值是 null 现在。它是因为替换语句的工作如下:

  • 此语句首先尝试将新行插入人员表。但是,新行的插入失败,因为id = 4已经存在于表中。
  • 所以此语句首先删除其ID = 4的行,然后用与AmsterDam相同的ID和城市插入新行。由于无涯教程未指定名称和电子邮件列的值,因此它被设置为null。

可以使用以下replace语句将行数据更新到表中:

REPLACE INTO table
SET column1 = value1, column2 = value2;

执行以下示例,使用replace语句将名为 mike california Birmingham

REPLACE INTO Person
SET ID = 1,
    Name = 'Mike',
    City = 'Birmingham';

验证表后,无涯教程可以看到以下输出:

MySQL REPLACE

Replace从SELECT中插入数据。

无涯教程可以使用以下替换为语句将数据插入到表中,其中数据从查询返回。

REPLACE INTO table1(column_list)
SELECT column_list
FROM table2
WHERE condition;

值得注意的是,上面的替换查询与插入类似于选择语句。执行以下示例,该示例使用replace to语句来复制同一表中的行。

REPLACE INTO Person(Name, City)
SELECT Name, City 
FROM Person WHERE id = 2;

验证表后,无涯教程将获得以下输出。在此输出中,可以看到成功添加了同一表中行中的行的副本。

无涯教程网

MySQL REPLACE

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

软件测试52讲 -〔茹炳晟〕

Go语言核心36讲 -〔郝林〕

从0开始学大数据 -〔李智慧〕

etcd实战课 -〔唐聪〕

MySQL 必知必会 -〔朱晓峰〕

Spring编程常见错误50例 -〔傅健〕

手把手带你写一个Web框架 -〔叶剑峰〕

运维监控系统实战笔记 -〔秦晓辉〕

好记忆不如烂笔头。留下您的足迹吧 :)