s4
diff 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 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/scripts/clean-orphaned.sql Sun Mar 05 15:12:17 2023 +0859 1.3 @@ -0,0 +1,31 @@ 1.4 +-- 親のないblogを探す 1.5 + 1.6 +CREATE TEMPORARY VIEW IF NOT EXISTS orphanedblog AS 1.7 + SELECT blog.id,val FROM blog JOIN blog_s bs 1.8 + ON blog.id=bs.id AND key='owner' 1.9 + WHERE val NOT IN (SELECT gname FROM grp) 1.10 + AND val NOT IN (SELECT name FROM user); 1.11 + 1.12 +SELECT * FROM orphanedblog; 1.13 + 1.14 +SELECT id FROM orphanedblog; 1.15 + 1.16 +-- 削除処理 1.17 +SELECT count(*) FROM article; 1.18 +DELETE FROM blog WHERE id IN (SELECT id FROM orphanedblog); 1.19 +SELECT count(*) FROM article; 1.20 + 1.21 +-- 親のないarticleを探す これがFOREIGN_KEYしてなかった!!! 1.22 + 1.23 +CREATE TEMPORARY VIEW IF NOT EXISTS orphanedarticle AS 1.24 + SELECT id FROM article 1.25 + WHERE blogid NOT IN (SELECT id FROM blog); 1.26 + 1.27 +SELECT count(*) FROM orphanedarticle; 1.28 + 1.29 +SELECT id FROM orphanedarticle; 1.30 + 1.31 +-- 削除処理 1.32 +SELECT count(*) FROM article; 1.33 +DELETE FROM article WHERE id IN (SELECT id FROM orphanedarticle); 1.34 +SELECT count(*) FROM article;