MySQL при изменении primary key нужно изменить и foreign key

Есть две таблицы:

CREATE TABLE `countries` (
    `id` int(10) unsigned NOT NULL,
    `name` varchar(45) NOT NULL
    PRIMARY KEY (`id`),
    UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `data` (
    `data_id` bigint(20) unsigned NOT NULL,
    `country_id` int(10) unsigned NOT NULL,
    PRIMARY KEY (`data_id`,`country_id`),
    KEY `fk_country_idx` (`country_id`),
    CONSTRAINT `fk_data` FOREIGN KEY (`data_id`) REFERENCES `common_data` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    CONSTRAINT `fk_country` FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1

Таблица countries содержит следующее:

+----+---------+
| id | name    | 
+----+---------+
|  0 | UNKNOWN |
|  1 | RUSSIA  |
|  2 | USA     |
|  3 | CHINA   |
+----+---------+

Мне нужно изменить id в таблице countries, чтобы стало например так:

 RUSSIA => 2
 USA    => 3
 CHINA  => 1

Также чтобы в таблице data изменились country_id, как это проще всего можно было бы реализовать?


Ответы (0 шт):