我确定stackoverflow上有这样的问题,但我找不到它:(
我有2个具有相同数据的数据库(“开发人员”数据库和“生产”数据库)。 “生产”数据库是“实时”数据库 - sitve访问者查看此数据 “developer”数据库是我在本地服务器上创建新功能的数据库。
当我向“开发人员”数据库添加一些新表和旧表中的一些新字段时,我遇到了这种情况。
现在我必须将这些新创建的字段和表复制到“生产”数据库(但只有结构,数据不应复制,“生产”数据库中的数据不得更改)。
UPD:也许有解决方案,我可以从开发数据库进行数据库结构转储,当我将其导入生产数据库时,它会自动添加所有表中的所有新字段我应该使用哪些功能?
感谢。
答案 0 :(得分:2)
您想要alter table
:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
答案 1 :(得分:1)
alter table tablename add column newcolumn tinyint(1) default 1 AFTER othercolumn
CREATE TABLE `newtablename` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`newcolumn` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
答案 2 :(得分:0)
仅复制您可以使用的结构,如:
jcho360> create table t3 like t2
;
Query OK, 0 rows affected (0.05 sec)
。
如果要在创建结构后复制内容,可以使用:
INSERT INTO t3 SELECT * FROM t2;
如果你想复制你可以使用的数据(没有结构,我的意思是,PK,FK等)
mysql> create table t4 as select * from t1
;
当然,您也可以使用备份来恢复表格
如果您想添加新列,可以使用
alter table tablename add column newcolumn vartype
;
如果要使用其他数据库中的表,可以使用先调用数据库的查询,然后使用名称,例如
select * from database.tablename;
记住用户也需要对其他数据库的许可。