1. 程式人生 > >MySQL中使用replace into語句批量更新表資料

MySQL中使用replace into語句批量更新表資料

作為示例,我們在這裡使用名為testdb的資料庫,並且在其中建立兩張一模一樣的表:

drop table if exists test_table_1;
create table test_table_1 (
    name varchar(30) primary key,
    age integer
);
drop table if exists test_table_2;
create table test_table_2 (
    name varchar(30) primary key,
    age integer
);

然後我們往兩張表裡面插入一些資料,其中test_table_1

中我們插入3組資料:

insert into test_table_1 (name, age) values ("劉德華", 57), ("周杰倫", 39), ("周潤發", 61);

但是我們發現除了這三個人以外,我還要新增兩個人,並且周潤發的年齡資訊也填寫錯了,那麼我暫時先把資訊插入到test_table_2中:

insert into test_table_2 (name, age) values ("陳綺貞", 43), ("范曉萱", 41), ("周潤發", 63);

然後我們嘗試一下,通過以下replace into語句將test_table_2中的資訊更新到test_table_1中:

replace into test_table_1 select * from test_table_2;

通過如下語句檢視test_table_1的結果:

select * from test_table_1;

可以看到結果如下:

name age
劉德華 57
周杰倫 39
周潤發 63
范曉萱 41
陳綺貞 43

我們往test_table_1中成功新增了兩位女歌手,同時也修改了周潤發的年齡。
可以看到,replace into

語句會更具主鍵是否存在來決定是進行insert操作還是update操作,是一個非常有用的指令。