Skip to main content

Istruzioni

Per prima cosa verificare la presenza di duplicati:

🛠 2. Metodo avanzato (via SQL)

Se vuoi trovare ed eliminare tutti i duplicati via SQL direttamente sul database, ecco come fare (usando ad esempio MySQL o MariaDB):

⚠️ Prima di iniziare:

  • Fai un backup del database: mysqldump opendcim > backup_opendcim.sql

  • Accedi al database: mysql -u username -p opendcim

🔍 Trova i duplicati

Questa query ti mostra i dispositivi che condividono la stessa posizione nello stesso rack:

sql
SELECT Cabinet, Position, COUNT(*) as NumDevices FROM fac_Device WHERE Position > 0 GROUP BY Cabinet, Position HAVING NumDevices > 1;
PASSO 1 – Verifica i dispositivi duplicati

Esegui questa query per vedere tutti i DeviceID duplicati nel rack 34:

sql
SELECT DeviceID, Label, Position, Height FROM fac_Device WHERE Cabinet = 34 ORDER BY Position, DeviceID;

🛠️ PASSO 2 – (Opzione sicura) Elimina i duplicati mantenendo un solo dispositivo per posizione

Puoi usare questa query per eliminare tutti i duplicati, mantenendo il dispositivo con l’ID più basso (cioè il primo inserito):

sql
DELETE FROM fac_Device WHERE DeviceID NOT IN ( SELECT * FROM ( SELECT MIN(DeviceID) FROM fac_Device WHERE Cabinet = 34 AND Position > 0 GROUP BY Position ) AS KeepDevices ) AND Cabinet = 34 AND Position > 0;

🔍 Cosa fa questa query:

  • Seleziona per ogni Position del rack 34 il DeviceID più piccolo.

  • Mantiene solo quelli.

  • Elimina tutti gli altri che sono nella stessa Position.


🔁 PASSO 3 – Verifica che la pulizia sia andata a buon fine

Esegui di nuovo:

sql
SELECT Cabinet, Position, COUNT(*) as NumDevices FROM fac_Device WHERE Cabinet = 34 AND Position > 0 GROUP BY Cabinet, Position HAVING NumDevices > 1;

Dovresti ora vedere zero righe (nessun duplicato).