萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql從表裡讀取一條數據後插入同一個表

mysql從表裡讀取一條數據後插入同一個表

有同學問我mysql怎麼從表裡讀取一條數據後插入同一個表中呢?這個問題很簡單只要使用INSERT INTO your_table SELECT就可以搞定,下面看個例子。

這個需求很簡單,就是從一個表裡,讀取一條數據,然後將數據修改後插入同一個表。

表(假設兩個表結構一樣)

INSERT INTO 新表
  SELECT * FROM 舊表
 
復制舊表的數據到新表(假設兩個表結構不一樣)

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

只用sql語句即可完成

代碼如下:

 代碼如下 復制代碼

INSERT INTO your_table (ID, ISO3, TEXT)
VALUES
SELECT ID, 'JPN', TEXT FROM your_table WHERE ID IN ( list_of_ id's )

注意示例代碼中的 ‘JPN’  這是一個常量,如果想改變某個字段的值,可直接將常量寫在select中。

補充:

 代碼如下 復制代碼

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

CREATE TABLE 新表 SELECT * FROM 舊表,實例如下:
CREATE TABLE new_table SELECT * FROM old_table
執行後的Messages:
(465 row(s) affected)
Execution Time : 00:00:00:359
Transfer Time  : 00:00:01:125
Total Time     : 00:00:01:484
465 row(s)說明復制了數據過去

只復制表結構到新表

CREATE TABLE 新表 SELECT * FROM 舊表 WHERE 1=2
即:讓WHERE條件不成立,也可改成5=6等,實例如下:
CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2
執行後的Messages:
(0 row(s) affected)
Execution Time : 00:00:00:641
Transfer Time  : 00:00:01:125
Total Time     : 00:00:01:766

0 row(s)說明沒有復制數據過去

copyright © 萬盛學電腦網 all rights reserved