s4

annotate scripts/clean-orphaned.sql @ 1006:4bc9494c00ff

Add clean-orphaned.sql migrate-grp.sh
author HIROSE Yuuji <yuuji@gentei.org>
date Sun, 05 Mar 2023 15:12:17 +0859
parents
children
rev   line source
yuuji@1006 1 -- 親のないblogを探す
yuuji@1006 2
yuuji@1006 3 CREATE TEMPORARY VIEW IF NOT EXISTS orphanedblog AS
yuuji@1006 4 SELECT blog.id,val FROM blog JOIN blog_s bs
yuuji@1006 5 ON blog.id=bs.id AND key='owner'
yuuji@1006 6 WHERE val NOT IN (SELECT gname FROM grp)
yuuji@1006 7 AND val NOT IN (SELECT name FROM user);
yuuji@1006 8
yuuji@1006 9 SELECT * FROM orphanedblog;
yuuji@1006 10
yuuji@1006 11 SELECT id FROM orphanedblog;
yuuji@1006 12
yuuji@1006 13 -- 削除処理
yuuji@1006 14 SELECT count(*) FROM article;
yuuji@1006 15 DELETE FROM blog WHERE id IN (SELECT id FROM orphanedblog);
yuuji@1006 16 SELECT count(*) FROM article;
yuuji@1006 17
yuuji@1006 18 -- 親のないarticleを探す これがFOREIGN_KEYしてなかった!!!
yuuji@1006 19
yuuji@1006 20 CREATE TEMPORARY VIEW IF NOT EXISTS orphanedarticle AS
yuuji@1006 21 SELECT id FROM article
yuuji@1006 22 WHERE blogid NOT IN (SELECT id FROM blog);
yuuji@1006 23
yuuji@1006 24 SELECT count(*) FROM orphanedarticle;
yuuji@1006 25
yuuji@1006 26 SELECT id FROM orphanedarticle;
yuuji@1006 27
yuuji@1006 28 -- 削除処理
yuuji@1006 29 SELECT count(*) FROM article;
yuuji@1006 30 DELETE FROM article WHERE id IN (SELECT id FROM orphanedarticle);
yuuji@1006 31 SELECT count(*) FROM article;