グループとクライアントという 2 つの関連テーブルがあります。クライアントはグループに属しているため、クライアントが属するグループを参照する外部キー「group_id」があります。
グループ ID を自動インクリメントから UUID に変更しています。したがって、必要なのは、グループごとに UUID を生成し、クライアント テーブルを一度に更新して、変更を反映し、レコードの関連付けを維持することです。
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$$