MySQL復制表結(jié)構(gòu)表數(shù)據(jù)方式
準備工作
新建一張 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ù),見下圖所示,這里隨便插入一些即可。
復制表結(jié)構(gòu)
復制已經(jīng)存在的一張表到另一張新表,使用 like 語句,語法如下:
CREATE TABLE `新表表名` LIKE `舊表表名`;
這里,以上面的 student 表為例,將它復制到一張新的表去,語句如下:
CREATE TABLE student_backup LIKE student;
執(zhí)行結(jié)果如下所示,可以看到,除了數(shù)據(jù)沒有復制過來,索引、存儲引擎、備注、默認字符集等等都完成了復制。
復制表數(shù)據(jù)
前面完成了表結(jié)構(gòu)的復制,下面接著完成表數(shù)據(jù)的復制,執(zhí)行下面的語句,然后刷新界面。
INSERT INTO student_backup SELECT * FROM student WHERE id IS NOT NULL;
得到的結(jié)果如下所示:
同時復制表結(jié)構(gòu)表數(shù)據(jù)
SQL 的語法如下:
CREATE TABLE `新表表名` SELECT * FROM `舊表表名`;
這里我們依舊以 student 表為基礎(chǔ),復制出一個新表 new_student 來看看,執(zhí)行一下下面的語句:
CREATE TABLE `new_student` SELECT * FROM `student`;
結(jié)果如下所示,可以看到使用這種方式復制,表和數(shù)據(jù)記錄都能過來,但原來的主鍵、索引、備注卻沒有,因此需要手動額外去添加。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫鎖的產(chǎn)生原因及解決辦法
這篇文章主要介紹了mysql數(shù)據(jù)庫鎖的產(chǎn)生原因及解決辦法,需要的朋友可以參考下2016-01-01MySQL語句之刪除指令deleted和truncate在使用中的異同詳解
這篇文章主要介紹了MySQL語句之刪除指令deleted和truncate在使用中的異同,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04mysql利用init-connect增加訪問審計功能的實現(xiàn)
下面小編就為大家?guī)硪黄猰ysql利用init-connect增加訪問審計功能的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03