sql >> Base de Datos >  >> RDS >> Mysql

MySql, ¿cómo puedo exportar índices de mi base de datos de desarrollo a mi base de datos de producción?

¿Quizás te refieres a "¿Cómo vuelvo a crear mis índices de desarrollo en mi base de datos en vivo (existente)"?

Si es así, creo que los comandos SQL que está buscando son;

MOSTRAR CREAR TABLA {tablename};

ALTERAR TABLA AÑADIR ÍNDICE {index_name} (col1, col2)

ALTER TABLE DROP INDEX {index_name}

Puede copiar las filas "CLAVE" y "RESTRICCIÓN" de la salida "MOSTRAR CREAR TABLA" y volver a colocarlas en "ALTERAR TABLA AÑADIR ÍNDICE".

dev mysql> SHOW CREATE TABLE city;
CREATE TABLE `city` (
  `id` smallint(4) unsigned NOT NULL auto_increment,
  `city` varchar(50) character set utf8 collate utf8_bin NOT NULL default '',
  `region_id` smallint(4) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `region_idx` (region_id),
  CONSTRAINT `city_ibfk_1` FOREIGN KEY (`region_id`) REFERENCES `region` (`id`) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB;

live mysql> SHOW CREATE TABLE city;
CREATE TABLE `city` (
  `id` smallint(4) unsigned NOT NULL auto_increment,
  `city` varchar(50) character set utf8 collate utf8_bin NOT NULL default '',
  `region_id` smallint(4) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;

live mysql> ALTER TABLE `city` ADD KEY `region_idx` (region_id);
live mysql> ALTER TABLE `city` ADD CONSTRAINT `city_ibfk_1` FOREIGN KEY (`region_id`) REFERENCES `region` (`id`) ON UPDATE CASCADE ON DELETE RESTRICT;

¡Espero que esto ayude!