sql >> Databasteknik >  >> RDS >> Oracle

SQL:ta bort all data från alla tillgängliga tabeller

Det finns inget kommando 'ALTER TABLE XXX DISABLE ALL CONSTRAINTS'

Jag föreslår detta;

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. Data med öppen källkod växer upp:Välj MySQL, NoSQL eller båda

  2. PHP för att lagra bilder i MySQL eller inte?

  3. Enkla SQL Server-funktioner för att lösa verkliga problem

  4. Aktiverar TLS i R12.1