Wie mehrere Datensätze gleichzeitig löschen?

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
freshP
Beiträge: 53
Registriert: Fr Sep 11, 2009 8:06 am

Wie mehrere Datensätze gleichzeitig löschen?

Beitrag von freshP »

Hallo,

ich habe 1000e Datensätze die gelöscht werden müssen.
Wie kann ich es umgehen, jeden Datensatz einzeln löschen zu müssen :?:

Danke im Voraus
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Nur per SQL. Was muss denn gelöscht werden?
Zu beachten ist, dass die Daten nicht verwendet sein dürfen. Ein Artikel, der schon in einem Fertigungsauftrag verwendet wurde, kann beispielsweise nur inaktiv gesetzt, nicht aber gelöscht werden.
freshP
Beiträge: 53
Registriert: Fr Sep 11, 2009 8:06 am

Beitrag von freshP »

Es sollen Mitarbeiter aus dem Mitarbeiterstamm gelöscht werden.
Wie Sie aber richtig erwähnt haben, funktioniert das nur, wenn sich keine anderen Datensätze auf diesen Mitarbeiter beziehen.
Dies ist aber z.B. bei der Zeiterfassung der Fall, bei der ca. 1000 Kommen-Gehen Datensätze hinterlegt sind.
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Und nach welchen Kriterien sollen die Mitarbeiter gelöscht werden?
freshP
Beiträge: 53
Registriert: Fr Sep 11, 2009 8:06 am

Beitrag von freshP »

Die zu löschenden Mitarbeiter sind aus dem Unternehmen ausgeschieden.
Also am besten nach dem Austrittsdatum.
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Warum sollen diese nicht einfach inaktiv gesetzt werden. So geht die Information, dass diese in der Firma gearbeitet haben bzw. was deren Aufgabengebiet war, nicht verloren?

Wenn dennoch gelöscht werden soll:

Code: Alles auswählen

-- Einzelzeiten löschen
DELETE FROM BSMB
WHERE BSM_ID_PER_NR IN (SELECT ID FROM BSM WHERE AUSDATUM IS NOT NULL AND AUSDATUM <= CURRENT_DATE);

COMMIT;

-- Mitarbeiter löschen
DELETE FROM BSM WHERE AUSDATUM IS NOT NULL AND AUSDATUM <= CURRENT_DATE;

COMMIT;
IMMER erst in einer Testdatenbank (Kopie der echten Datenbank) ausführen und das Ergebnis überprüfen!
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Sollte dies eine größere Menge an Datensätzen betreffen, sollte danach ein Backup und Restore der Datenbank erfolgen.
freshP
Beiträge: 53
Registriert: Fr Sep 11, 2009 8:06 am

Beitrag von freshP »

Warum einfach, wenn's auch kompliziert geht :shock:

Hab die Mitarbeiter auf inaktiv gesetzt, so wie es vorgeschlagen wurde.
Damit ist mein Problem gelöst. :D

Danke dafür.
freshP
Beiträge: 53
Registriert: Fr Sep 11, 2009 8:06 am

Beitrag von freshP »

Ich brauch nochmal Hilfe :?

Diesmal geht es darum, dass aus irgendwelchen Gründen, bei einigen Mitarbeitern die Kommen- und Gehen-Planzeiten bis zum Jahr 2011 vorgegeben sind.

Gibt es dafür auch eine einfache Variante die Datensätze zu löschen oder zu ändern, ohne jeden einzelnen Datensatz anwählen zu müssen :?:


Danke im Voraus
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Ganz normal per SQL.

Code: Alles auswählen

DELETE FROM [TABELLE]
WHERE [FELD]j</=/> [WERT] AND...
Antworten