我们正在发布基于我们现有产品的新产品,因为我们已经创建了一个具有不同方案的新mysql数据库。
现在我们需要新数据库中我们之前数据库中的一些表,但出于设计目的,新数据库中表的名称不同(但所有字段都相同)。如果名称相同,我可以从先前的数据库导出表并将其导入新表。
现在,如果表的名称不同,我该怎么做?
答案 0 :(得分:1)
您可以导出和导入这些表,然后使用以下命令重命名表:
RENAME TABLE tbl_name TO new_tbl_name
[, tbl_name2 TO new_tbl_name2] ...
有关详细信息,请参阅此链接:http://dev.mysql.com/doc/refman/5.0/en/rename-table.html
然后你可以像这样重命名列:
ALTER TABLE xyz CHANGE manufacurerid manufacturerid INT
如此StackOverflow中所述: Error renaming a column in MySQL
答案 1 :(得分:0)
我认为你不能直接这样做但是如果你不想更改转储文件并更改表名,你可以按照以下步骤进行操作
这是一个例子
mysql> select * from table1 ;
+------+------+
| t1id | name |
+------+------+
| 1 | aa |
| 2 | cc |
| 3 | dd |
| 4 | ee |
| 5 | ff |
| 6 | bb |
| 7 | gg |
+------+------+
7 rows in set (0.00 sec)
mysql> create table table1_copy like table1 ;
Query OK, 0 rows affected (0.12 sec)
mysql> insert into table1_copy select * from table1 ;
Query OK, 7 rows affected (0.07 sec)
Records: 7 Duplicates: 0 Warnings: 0
mysql> select * from table1_copy ;
+------+------+
| t1id | name |
+------+------+
| 1 | aa |
| 2 | cc |
| 3 | dd |
| 4 | ee |
| 5 | ff |
| 6 | bb |
| 7 | gg |
+------+------+
7 rows in set (0.00 sec)
然后您可以将每个表导出为
mysqldump -u username -p dbname table1_copy > table1_copy.sql
将新表导入为
mysql -u username -p < table1_copy.sql
最后删除在旧数据库上创建的临时表。
或导出eveything,并重命名表格。
答案 2 :(得分:0)
你可以在mysql中这样做,
create table new_name_new_table(select * from old_table_name);
将使用新名称将old_table中的所有数据复制到新表。