sql >> Database teknologi >  >> RDS >> Oracle

SQL:slet alle data fra alle tilgængelige tabeller

Der er ingen kommando 'ALTER TABLE XXX DISABLE ALL CONSTRAINTS'

Jeg foreslår dette;

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. Tidlige registreringer åbner for PGDay.IT 2011

  2. Hvordan får man en værdi fra den sidst indsatte række?

  3. Er der nogen funktion i oracle, der ligner group_concat i mysql?

  4. Oracle Database Link - MySQL-ækvivalent?