0

グループとクライアントという 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$$
4

0 に答える 0