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');

验证数据后,无涯教程可以使用replace语句用新行Replace任何旧行。执行以下声明,更新ID为4 的 city。
REPLACE INTO Person (id, city) VALUES(4,'Amsterdam');
成功执行上述声明后,需要再次查询表格的数据以验证Replace替换。

Name 和Email列的值是 null 现在。它是因为替换语句的工作如下:
- 此语句首先尝试将新行插入人员表。但是,新行的插入失败,因为id = 4已经存在于表中。
- 所以此语句首先删除其ID = 4的行,然后用与AmsterDam相同的ID和城市插入新行。由于无涯教程未指定名称和电子邮件列的值,因此它被设置为null。
REPLACE INTO table SET column1 = value1, column2 = value2;
执行以下示例,使用replace语句将名为 mike 从 california 到Birmingham。
REPLACE INTO Person
SET ID = 1,
Name = 'Mike',
City = 'Birmingham';
验证表后,无涯教程可以看到以下输出:

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;
验证表后,无涯教程将获得以下输出。在此输出中,可以看到成功添加了同一表中行中的行的副本。
祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)
精选教程推荐
👇 以下精选教程可能对您有帮助,拓展您的技术视野
暂无学习笔记,成为第一个分享的人吧!
您的笔记将帮助成千上万的学习者