sql >> Databáze >  >> RDS >> Oracle

SQL:odstraňte všechna data ze všech dostupných tabulek

Neexistuje žádný příkaz 'ALTER TABLE XXX DISABLE ALL CONSTRAINTS'

Navrhuji toto;

BEGIN
  FOR c IN (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type = 'R')
  LOOP
    EXECUTE IMMEDIATE ('alter table ' || c.table_name || ' disable constraint ' || c.constraint_name);
  END LOOP;
  FOR c IN (SELECT table_name FROM user_tables)
  LOOP
    EXECUTE IMMEDIATE ('truncate table ' || c.table_name);
  END LOOP;
  FOR c IN (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type = 'R')
  LOOP
    EXECUTE IMMEDIATE ('alter table ' || c.table_name || ' enable constraint ' || c.constraint_name);
  END LOOP;
END;


  1. Výukový program SQL JOINs s příklady

  2. #1139 - Z regulárního výrazu se vyskytla chyba 'repetition-operator operand invalid'

  3. Nejlepší nové funkce Oracle 12c

  4. poddotaz ve FROM musí mít alias