Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Kürzen Sie die Tabelle in Oracle und erhalten Sie Fehler

Sie müssen die TRUNCATE-Anweisung durch DELETE-Anweisungen ersetzen, langsamer und protokolliert, aber das ist der Weg, es zu tun, wenn Einschränkungen vorhanden sind.

DELETE mytablename;

Entweder das, oder Sie können die Fremdschlüssel finden, die auf die betreffende Tabelle verweisen, und sie vorübergehend deaktivieren.

select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';

Wo pk-of-table ist der Name des Primärschlüssels der Tabelle, die abgeschnitten wird

Führen Sie die Ausgabe der obigen Abfrage aus. Wenn dies geschehen ist, denken Sie daran, sie wieder zu aktivieren, ändern Sie einfach DISABLE CONSTRAINT in ENABLE CONSTRAINT