Files
Dokumenten-Check/Scripts/DC_DOCUMENT_PROGRESS_ALTER.sql

51 lines
1.3 KiB
MySQL
Raw Normal View History

-- =============================================================================
-- DC_DOCUMENT_PROGRESS_ALTER.sql
-- Ergänzt dc_project_documents um status und progress für Dokument-Fortschritt.
-- Idempotent: Fehler "Spalte existiert bereits" wird ignoriert.
-- =============================================================================
BEGIN
EXECUTE IMMEDIATE '
ALTER TABLE dc_project_documents ADD (
status VARCHAR2(20) DEFAULT ''PENDING'',
progress NUMBER DEFAULT 0
)
';
DBMS_OUTPUT.PUT_LINE('Spalten status/progress angelegt.');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -1430 THEN
DBMS_OUTPUT.PUT_LINE('Spalten existieren bereits kein Änderungsbedarf.');
ELSE
RAISE;
END IF;
END;
/
-- Bestehende Zeilen initialisieren
UPDATE dc_project_documents
SET status = 'PENDING',
progress = 0
WHERE status IS NULL;
COMMIT;
-- Check-Constraint (idempotent)
BEGIN
EXECUTE IMMEDIATE '
ALTER TABLE dc_project_documents
ADD CONSTRAINT dc_project_documents_status_ck
CHECK (status IN (''PENDING'', ''IN_PROGRESS'', ''COMPLETED'', ''ERROR''))
';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE IN (-2264, -2261) THEN NULL; -- Constraint existiert bereits
ELSE RAISE;
END IF;
END;
/
COMMIT;
EXIT;