From 5dbaaa05efcc4486cd769125829918d3e578313b Mon Sep 17 00:00:00 2001 From: daichi_otani Date: Thu, 28 Sep 2023 14:11:34 +0900 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E8=A4=87=E5=9C=A8=E5=BA=AB=E3=81=AE?= =?UTF-8?q?=E6=83=85=E5=A0=B1=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99=E3=82=8B?= =?UTF-8?q?sql=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Version20230928014611.php | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 app/DoctrineMigrations/Version20230928014611.php diff --git a/app/DoctrineMigrations/Version20230928014611.php b/app/DoctrineMigrations/Version20230928014611.php new file mode 100644 index 00000000000..189e9b9580b --- /dev/null +++ b/app/DoctrineMigrations/Version20230928014611.php @@ -0,0 +1,51 @@ +connection->fetchAllKeyValue(" +SELECT id,product_class_id, product_class_id_count +FROM ( + SELECT + id, + product_class_id, + COUNT(product_class_id) AS product_class_id_count + FROM + dtb_product_stock + GROUP BY + product_class_id + ) AS subquery +WHERE product_class_id_count > 1; +"); + + // 重複在庫がある場合、dtb_product_class.stockを正として、それ以外の在庫情報は削除する + if (count($exists) != 0) { + foreach ($exists as $id => $pc_id) { + $stock = $this->connection->fetchOne("SELECT stock FROM dtb_product_class WHERE id = :id", ["id" => $pc_id]); + $this->addSql("DELETE FROM dtb_product_stock WHERE product_class_id = :pc_id", ["pc_id" => $pc_id]); + $this->addSql("insert into dtb_product_stock (product_class_id, creator_id, stock, create_date, update_date, discriminator_type) VALUES (:pc_id, null, $stock, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'productstock')", ["pc_id" => $pc_id]); + } + } + } + + public function down(Schema $schema): void + { + } +}