sql >> データベース >  >> RDS >> Mysql

MySql、開発データベースから本番データベースにインデックスをエクスポートするにはどうすればよいですか?

    おそらく、「(既存の)ライブデータベースに開発インデックスを再作成するにはどうすればよいですか?」

    もしそうなら、あなたが探しているSQLコマンドはそうだと思います;

    SHOW CREATE TABLE {tablename};

    ALTER TABLE ADD INDEX {index_name}(col1、col2)

    ALTER TABLE DROP INDEX {index_name}

    「SHOWCREATETABLE」出力から「KEY」行と「CONSTRAINT」行をコピーして、「ALTERTABLEADDINDEX」に戻すことができます。

    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;
    

    これがお役に立てば幸いです!



    1. グループごとの最大値

    2. sqlまたはphpPgAdminを使用してPostgreSQLデータベースのデータベースエンコーディングを変更するにはどうすればよいですか?

    3. mysqlはn個の最後の行から選択します

    4. MySQLは、別のテーブルの列の合計に基づいてフィールドを更新するようにトリガーします