覆盖sql表结构

时间:2015-08-30 22:26:23

标签: mysql sql scripting

表1

CREATE TABLE `test`.`table_1` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45),
  PRIMARY KEY (`id`)
)
ENGINE = InnoDB;

表2

CREATE TABLE `test`.`table_2` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(256) NOT NULL,
  `number` INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (`id`)
)
ENGINE = InnoDB;

我想得到的结果: 表1 表2 应该是相同的,表1在我的同事工作区中,我想将其更改为表2 不丢失数据

1 个答案:

答案 0 :(得分:2)

您可以使用alter table。应该没问题:

alter table table_1 modify name varchar(256) not null;

alter table table_1 add number integer unsigned not null;

注意:not null实际上假设您的表为空(对于number)且name没有NULL值。否则,您将需要一个默认值。