我们正在发布一个基于我们现有产品的新产品,为此,我们使用不同的方案创建了一个新的mysql数据库。
现在,我们需要在新数据库中使用以前数据库中的一些表,但出于设计目的,新数据库中的表名称不同(但所有字段都是相同的)。如果名称相同,我可以从以前的数据库中导出该表,然后将其导入到新的数据库中。
现在表的名称不同了,我该怎么做呢?
发布于 2015-03-17 17:08:13
您可以导出和导入这些表,然后使用以下命令重命名该表:
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
发布于 2016-03-15 18:41:08
在MySQL中,
create table new_table_name(select * from old_table_name);它会将old_table中的所有数据复制到一个新表中。
发布于 2015-03-17 17:05:21
对于需要导入到新数据库中的
下面是一个例子
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
最后删除在旧db上创建的临时表。
或者导出所有内容,然后重命名这些表。
https://stackoverflow.com/questions/29094846
复制相似问题