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操作,是一個非常有用的指令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM