MySQL復(fù)制表結(jié)構(gòu)表數(shù)據(jù)方式
準(zhǔn)備工作
新建一張 student 表,建表語句如下:
CREATE TABLE `student` ( `id` int(20) NOT NULL, `name` varchar(30) COLLATE utf8_bin DEFAULT NULL, `tid` int(10) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fktid` (`tid`), CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
往表里面插入一些數(shù)據(jù),見下圖所示,這里隨便插入一些即可。
復(fù)制表結(jié)構(gòu)
復(fù)制已經(jīng)存在的一張表到另一張新表,使用 like 語句,語法如下:
CREATE TABLE `新表表名` LIKE `舊表表名`;
這里,以上面的 student 表為例,將它復(fù)制到一張新的表去,語句如下:
CREATE TABLE student_backup LIKE student;
執(zhí)行結(jié)果如下所示,可以看到,除了數(shù)據(jù)沒有復(fù)制過來,索引、存儲(chǔ)引擎、備注、默認(rèn)字符集等等都完成了復(fù)制。
復(fù)制表數(shù)據(jù)
前面完成了表結(jié)構(gòu)的復(fù)制,下面接著完成表數(shù)據(jù)的復(fù)制,執(zhí)行下面的語句,然后刷新界面。
INSERT INTO student_backup SELECT * FROM student WHERE id IS NOT NULL;
得到的結(jié)果如下所示:
同時(shí)復(fù)制表結(jié)構(gòu)表數(shù)據(jù)
SQL 的語法如下:
CREATE TABLE `新表表名` SELECT * FROM `舊表表名`;
這里我們依舊以 student 表為基礎(chǔ),復(fù)制出一個(gè)新表 new_student 來看看,執(zhí)行一下下面的語句:
CREATE TABLE `new_student` SELECT * FROM `student`;
結(jié)果如下所示,可以看到使用這種方式復(fù)制,表和數(shù)據(jù)記錄都能過來,但原來的主鍵、索引、備注卻沒有,因此需要手動(dòng)額外去添加。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫(kù)鎖的產(chǎn)生原因及解決辦法
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)鎖的產(chǎn)生原因及解決辦法,需要的朋友可以參考下2016-01-01MySQL語句之刪除指令deleted和truncate在使用中的異同詳解
這篇文章主要介紹了MySQL語句之刪除指令deleted和truncate在使用中的異同,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04mysql 數(shù)據(jù)庫(kù)設(shè)計(jì)
大家都知道m(xù)ysql的myisam表適合讀操作大,寫操作少;表級(jí)鎖表2009-06-06mysql利用init-connect增加訪問審計(jì)功能的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猰ysql利用init-connect增加訪問審計(jì)功能的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03MySQL數(shù)據(jù)庫(kù)鎖機(jī)制原理解析
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)鎖機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12