繁体   English   中英

向现有表添加新字段

[英]add new fields to existing table

我敢肯定在stackoverflow有这样的问题,但我只是找不到它:(

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

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

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

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

我应该使用什么功能?

谢谢。

更改现有表

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;
  • 仅复制您可以使用的结构,例如:

    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;

记住用户也需要对其他数据库的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM