将新字段添加到现有表

时间:2012-05-31 14:19:07

标签: mysql sql

我确定stackoverflow上有这样的问题,但我找不到它:(

我有2个具有相同数据的数据库(“开发人员”数据库和“生产”数据库)。 “生产”数据库是“实时”数据库 - sitve访问者查看此数据 “developer”数据库是我在本地服务器上创建新功能的数据库。

当我向“开发人员”数据库添加一些新表和旧表中的一些新字段时,我遇到了这种情况。

现在我必须将这些新创建的字段和表复制到“生产”数据库(但只有结构,数据不应复制,“生产”数据库中的数据不得更改)。

UPD:也许有解决方案,我可以从开发数据库进行数据库结构转储,当我将其导入生产数据库时,它会自动添加所有表中的所有新字段

我应该使用哪些功能?

感谢。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

alter an existing table

alter table tablename add column newcolumn tinyint(1) default 1 AFTER othercolumn

create a new table

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;

记住用户也需要对其他数据库的许可。