我正在寻找几个小时但没有找到一个好的答案,有人可以帮助我在MySQL中这样做:
如何将表-1的结构和数据复制到表-2中,如表-1和表-2所示: -
如何在没有任何数据的情况下将Table-1的结构复制到表-2中。
[Table-1 Store_Information]
Store_Name Sales Txn_Date
Los Angeles 1500 Jan-05-1999
San Diego 250 Jan-07-1999
Los Angeles 300 Jan-08-1999
Boston 700 Jan-08-1999
[Table-2 Geography]
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
我也尝试过在其他线程上找到的一些例子,例如
SELECT column_name1,column_name2,..
INTO new_table
FROM table_name;
和
INSERT INTO table2
column1, column2..
SELECT column1, column2, ..
FROM table1;
我从这些链接中找到的两个查询: -
http://blog.ubiq.co/copy-data-into-new-table-mysql/
http://blog.ubiq.co/insert-data-from-one-table-into-another-mysql/
但似乎没有任何效果。
第一个查询不起作用,因为MySQL不支持SELECT INTO。
如果table2中有一列,那么insert语句将起作用。所以主要问题是如何将一些列从一个表复制到另一个表。只是结构,而不是数据。
我正在使用MySQL。数据库是相同的。两个表都在同一个数据库中。这两个表都已存在于数据库中。
请帮我这样做。
答案 0 :(得分:2)
要复制没有数据的结构,您可以使用LIKE
选项CREATE TABLE
:
CREATE TABLE table2 LIKE table1;
然后,您可以使用以下内容复制所有数据:
INSERT INTO table2
SELECT * FROM table1
如果要复制某些列及其数据,可以执行以下操作:
CREATE TABLE table2
SELECT col1, col2, col3, ...
FROM table1
这只会复制数据类型,不会复制像auto_increment
这样的索引和选项。
要复制一些没有任何数据的列,可以使用上面的过程,但是WHERE
子句不选择任何行:
CREATE TABLE table2
SELECT col1, col2, col3, ...
FROM table1
WHERE 1 = 0