我有表:更新数据库替换为INTO
select * from person;
+----+------+---------+
| id | name | surname |
+----+------+---------+
| 1 | John | Doe |
| 2 | Mary | Smith |
+----+------+---------+
2 rows in set (0.00 sec)
我需要在MySQL数据库中,以取代值。所有的值都有相同的ID,所以我试图:
replace into person (id,name) values (1,'Victor');
select * from person;
+----+--------+---------+
| id | name | surname |
+----+--------+---------+
| 1 | Victor | NULL |
| 2 | Mary | Smith |
+----+--------+---------+
2 rows in set (0.00 sec)
问题是它的姓氏设置为NULL。
我知道我可以用UPDATE person SET name='Victor' WHERE id=1
做到这一点,但是我有一个包含许多INSERT INTO的转储的巨大SQL文件,所以我在考虑使用REPLACE INTO,因为它具有相同的语法结构,它会更快,只是做搜索&替换(INSERT - > REPLACE INTO)。
编辑: 问题是我有一个巨大的转储文件是这样的:
INSERT INTO person (id,name) VALUES (1,'Victor');
INSERT INTO person (id,name) VALUES (2,'Mark');
INSERT INTO person (id,name) VALUES (3,'Steve');
INSERT INTO person (id,name) VALUES (4,'Lou');
INSERT INTO person (id,name) VALUES (5,'Jessica');
等。
所以I'm希望更新所有那些名字到最简单的方法数据库。如果我能做这样的事情会很棒:UPDATE person SET (id,name) VALUES (1,´Victor')
数据库转储不包含所有信息,只是id和新名称。 –