更改主表PK并更新相关表FK(在Mysql上将PK从Autoincrement更改为UUID)

时间:2012-06-30 02:38:34

标签: mysql foreign-keys uuid create-table

我有两个相关的表:组和客户端。客户端属于组,因此我有一个外键“group_id”,它引用客户端所属的组。

我正在将组ID从自动增量更改为UUID。所以我需要的是为每个组生成一个UUID并立即更新Clients表以反映更改并保持记录相关。

有没有办法在MySQL上进行多表更新?

添加表定义以便澄清。

CREATE TABLE `groups` (
  `id` char(36) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$


CREATE TABLE `clients` (
  `id` char(36) NOT NULL,
  `name` varchar(255) NOT NULL,
  `group_id` char(36) DEFAULT NULL,
  `active` tinyint(1) DEFAULT '1'
  PRIMARY KEY (`id`),
  KEY `fkgp` (`group_id`),
  CONSTRAINT `fkgp` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`) 
  ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$

0 个答案:

没有答案