sql >> Databasteknik >  >> RDS >> Mysql

MySql, hur kan jag exportera index från min utvecklingsdatabas till min produktionsdatabas?

Du kanske menar "Hur skapar jag om mina utvecklingsindex på min (befintliga) livedatabas"?

Om så är fallet tror jag att de SQL-kommandon du letar efter är;

VISA SKAPA TABELL {tabellnamn};

ALTER TABELL LÄGG TILL INDEX {index_name} (kol1, kol2)

ALTER TABLE DROP INDEX {index_name}

Du kan kopiera "KEY" och "CONSTRAINT"-raderna från "SHOW CREATE TABLE"-utgången och sätta tillbaka den i "ALTER TABLE ADD INDEX".

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;

Hoppas detta hjälper!



  1. Mysql datetime index fungerar inte när du använder "gilla"

  2. Hur man säkrar MySQL:Del två

  3. ett antal för varje join - optimering

  4. Java MySQL JDBC-minnesläcka