萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL復制表結構 表數據sql語句總結

MySQL復制表結構 表數據sql語句總結

在mysql中復制表有很多種方法,如有create select from或者insert into select from及有選擇性的insert into(a,b,c) select a,b,c from這些基本可以完成我們的操作了,下面我來總結一下mysql復制表語句。

復制整個表

 代碼如下 復制代碼 create table new_table select * from old_table;

復制表,不復制數據

 代碼如下 復制代碼

create table new_table select * from old_table where 0;

主鍵,索引,自增等其他額外特征不會被帶到新表中。這點和其他的數據庫產品類似。

上面為核心兩句了

1、MySQL復制表結構及數據到新表

 代碼如下 復制代碼

CREATE TABLE `新表` SELECT * FROM `舊表`

2、只復制表結構到新表

 代碼如下 復制代碼

CREATE TABLE `新表` SELECT * FROM `舊表` WHERE 1=2

CREATE TABLE `新表` LIKE `舊表`

3、復制舊表的數據到新表(假設兩個表結構一樣)

 代碼如下 復制代碼

INSERT INTO `新表` SELECT * FROM `舊表`

4、復制舊表的數據到新表(假設兩個表結構不一樣)

 代碼如下 復制代碼

INSERT INTO `新表`(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM `舊表`

5、show create table 舊表;

這樣會將舊表的創建命令列出。我們只需要將該命令拷貝出來,更改table的名字,就可以建立一個完全一樣的表


時候這些MySQL界面工具會報錯,這個時候用命令行更好。比如復制一個表字段數據到另外一個表的字段,可以這麼寫:

 代碼如下 復制代碼


 UPDATE tb_1 INNER JOIN tb_2 ON tb_1.tid = tb_2.tid  SET tb_1.tcontent = tb_2.tcontent

下面是一個實際例子,將PHPCMS已生成的靜態頁面的鏈接寫入phpcms_content表中的url字段:

先這樣拼湊出需要的url字段列。

 代碼如下 復制代碼

SELECT CONCAT(FROM_UNIXTIME(inputtime,'%Y/%m%d'), '/', contentid, '.html') AS dt FROM phpcms_content ORDER BY contentid DESC

然後再查詢編輯器(navicat)中,將整段復制拷貝到phpcms_content表中的url列即可

copyright © 萬盛學電腦網 all rights reserved