復制整個表
代碼如下 復制代碼 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列即可