Newer
Older
s4 / scripts / clean-orphaned.sql
@HIROSE Yuuji HIROSE Yuuji on 5 Mar 2023 893 bytes Add clean-orphaned.sql migrate-grp.sh
-- 親のないblogを探す

CREATE TEMPORARY VIEW IF NOT EXISTS orphanedblog AS
  SELECT blog.id,val FROM blog JOIN blog_s bs
            ON blog.id=bs.id AND key='owner'
            WHERE val NOT IN (SELECT gname FROM grp)
              AND val NOT IN (SELECT name FROM user);

SELECT * FROM orphanedblog;

SELECT id FROM orphanedblog;

-- 削除処理
SELECT count(*) FROM article;
DELETE FROM blog WHERE id IN (SELECT id FROM orphanedblog);
SELECT count(*) FROM article;

-- 親のないarticleを探す これがFOREIGN_KEYしてなかった!!!

CREATE TEMPORARY VIEW IF NOT EXISTS orphanedarticle AS
  SELECT id FROM article
  WHERE  blogid NOT IN (SELECT id FROM blog);

SELECT count(*) FROM orphanedarticle;

SELECT id FROM orphanedarticle;

-- 削除処理
SELECT count(*) FROM article;
DELETE FROM article WHERE id IN (SELECT id FROM orphanedarticle);
SELECT count(*) FROM article;