import java.sql.*; public class FixTwo { static final String U = "root"; static final String P = "Ylrz_1q2w3e4r5t6y"; public static void main(String[] a) throws Exception { Class.forName("com.mysql.cj.jdbc.Driver"); fix("fs_tenant_t202606124273"); fix("fs_tenant_t202606154320"); } static void fix(String db) throws Exception { String url = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/"+db+"?allowMultiQueries=true&serverTimezone=Asia/Shanghai"; try (Connection c = DriverManager.getConnection(url,U,P); Statement s = c.createStatement()) { // Check state ResultSet r = s.executeQuery("SELECT COUNT(1), MIN(company_id) FROM company_menu WHERE menu_id=29900"); r.next(); System.out.println(db+": cnt="+r.getInt(1)+" cid="+r.getString(2)); // Force insert root if missing s.executeUpdate("INSERT IGNORE INTO company_menu (menu_id,menu_name,parent_id,order_num,path,component,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,company_id,remark) VALUES (29900,'数字员工',0,100,'/lobster','',0,0,'M','0','0',NULL,'el-icon-cpu','admin',NOW(),1,'Lobster Engine')"); // Now all NULL cid → 1 s.executeUpdate("UPDATE company_menu SET company_id = 1 WHERE company_id IS NULL"); // Now re-run the V08 INSERT IGNORE parts (the sys_menu sync already worked) int[] ids = {32481,29949,29905,29907,29925,29923,29944,29936,29909,29908,29912,29935,29947,29934,29933,29924,29946,29906,3008,29938,29937,29939,29920,29941,29950,29948,29922}; for (int id : ids) { s.executeUpdate("INSERT IGNORE INTO company_menu (menu_id,menu_name,parent_id,order_num,path,component,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,company_id,remark) SELECT m.menu_id,m.menu_name,m.parent_id,m.order_num,m.path,m.component,m.is_frame,m.is_cache,m.menu_type,m.visible,m.status,m.perms,m.icon,m.create_by,m.create_time,1,m.remark FROM sys_menu m WHERE m.menu_id="+id+" AND NOT EXISTS (SELECT 1 FROM company_menu x WHERE x.menu_id="+id+")"); } r = s.executeQuery("SELECT COUNT(1) FROM company_menu WHERE menu_id BETWEEN 29900 AND 29999"); r.next(); System.out.println(" -> company_menu count: "+r.getInt(1)); } } }