如何将数据从一个表复制到MySQL中的另一个新表?

Fer*_*ero 134 mysql copy

我想在MySQL中将数据从一个表复制到另一个表.

表1(现有表):

aid    
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link
Run Code Online (Sandbox Code Playgroud)

表2(新表)

st_id
uid
changed
status
assign_status
Run Code Online (Sandbox Code Playgroud)

我想将表1中的一些数据字段复制到表2中.

可以使用MySQL查询完成吗?

jdi*_*ias 260

这将做你想要的:

INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1
Run Code Online (Sandbox Code Playgroud)

如果要包含table1中的所有行.否则,如果只想添加table1的子集,则可以在末尾添加WHERE语句.

我希望这有帮助.


Bry*_*yan 67

如果您不想列出字段,并且表的结构相同,您可以执行以下操作:

INSERT INTO `table2` SELECT * FROM `table1`;
Run Code Online (Sandbox Code Playgroud)

或者如果要创建具有相同结构的新表:

CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
Run Code Online (Sandbox Code Playgroud)

插入选择参考 ; create table select的参考

  • 为什么`[AS]`在方括号中,`AS`在这里做了什么 (2认同)
  • 它表示,这个词是可选的.它是用这种方式,因为我复制并从文档粘贴; 它没有添加任何东西.我认为`AS`在其他SQL方言中是强制性的. (2认同)

小智 22

您可以轻松地从另一个表中获取数据.您只需要添加所需的字段.

mysql查询是:

INSERT INTO table_name1(fields you want)
  SELECT fields you want FROM table_name2
Run Code Online (Sandbox Code Playgroud)


其中,值从table2复制到table1


小智 6

CREATE TABLE newTable LIKE oldTable;
Run Code Online (Sandbox Code Playgroud)

然后,将数据复制到

INSERT INTO newTable SELECT * FROM oldTable;
Run Code Online (Sandbox Code Playgroud)