cleanup-test-users.sql 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. -- 清理测试用户脚本
  2. -- 删除所有包含"测试用户"、"test"或"Test"的用户及其关联数据
  3. BEGIN;
  4. -- 1. 统计将要删除的用户
  5. SELECT
  6. COUNT(*) as 将要删除的用户数,
  7. STRING_AGG(DISTINCT name, ', ') as 示例用户名
  8. FROM users
  9. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  10. AND deleted_at IS NULL;
  11. -- 2. 删除关联的 keys(软删除)
  12. UPDATE keys
  13. SET deleted_at = NOW(), updated_at = NOW()
  14. WHERE user_id IN (
  15. SELECT id FROM users
  16. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  17. AND deleted_at IS NULL
  18. )
  19. AND deleted_at IS NULL;
  20. -- 3. 删除用户(软删除)
  21. UPDATE users
  22. SET deleted_at = NOW(), updated_at = NOW()
  23. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  24. AND deleted_at IS NULL;
  25. -- 4. 查看删除结果
  26. SELECT
  27. COUNT(*) as 剩余用户总数,
  28. COUNT(*) FILTER (WHERE name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%') as 剩余测试用户
  29. FROM users
  30. WHERE deleted_at IS NULL;
  31. -- 如果确认无误,执行 COMMIT;否则执行 ROLLBACK
  32. -- COMMIT;
  33. ROLLBACK;