MySQL是世界上最流行的開源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),提供了很多簡(jiǎn)便的方式來(lái)操作數(shù)據(jù)。在實(shí)際應(yīng)用中,經(jīng)常需要合并兩個(gè)擁有同樣結(jié)構(gòu)的表。下面我們就來(lái)討論一下如何使用MySQL來(lái)實(shí)現(xiàn)這個(gè)功能。
下面我們以兩個(gè)人員信息表為例,兩個(gè)表結(jié)構(gòu)完全一致:
CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; CREATE TABLE `table2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
如果需要將這兩個(gè)表合并,可以使用MySQL的INSERT INTO語(yǔ)句結(jié)合SELECT子句來(lái)完成。以下是具體的語(yǔ)句:
INSERT INTO table1 SELECT * FROM table2;
執(zhí)行完上述語(yǔ)句后,table2表中的數(shù)據(jù)將被復(fù)制到table1表中,這兩個(gè)表的結(jié)構(gòu)必須完全一致。
值得注意的是,如果兩個(gè)表中有相同的主鍵,則在INSERT INTO語(yǔ)句中需要設(shè)置ON DUPLICATE KEY UPDATE,否則會(huì)報(bào)主鍵沖突的錯(cuò)誤。
INSERT INTO table1 SELECT * FROM table2 ON DUPLICATE KEY UPDATE name=values(name),age=values(age);
以上就是使用MySQL同結(jié)構(gòu)兩個(gè)表合并的方法,希望對(duì)大家有所幫助。