sql >> Databasteknik >  >> RDS >> Oracle

Undertryck ORA-00942-fel i ddl-skapande skript

Helst bör vi underhålla vårt schema ordentligt, med hjälp av källkontroll och konfigurationshantering bästa praxis. I det här scenariot vet vi i förväg om schemat vi kör våra skript mot innehåller dessa tabeller. Vi får inga felmeddelanden eftersom vi inte försöker släppa tabeller som inte finns.

Det är dock inte alltid möjligt att göra detta. Ett alternativt tillvägagångssätt är att ha två skript. Det första skriptet har bara DROP TABLE-satserna, inledda med en vänlig

PROMPT  It is safe to ignore any ORA-00942 errors in the following statements

Det andra skriptet har alla CREATE TABLE-satser och leder av med

PROMPT  All the statements in this script should succeed.  So investigate any errors

Ett annat alternativ är att använda dataordboken:

begin
    for r in ( select table_name from user_tables )
    loop
        execute immediate 'drop table '||r.table_name
                    ||' cascade constraints';
    end loop;
end;

Var försiktig med den här. Det är det nukleära alternativet och kommer att ta bort varje tabell i ditt schema.




  1. MySQL Infoga i från en databas i en annan

  2. hur snabbar man på insättningen i neo4j från mysql?

  3. 3 sätt att få månadsnamnet från ett datum i SQL Server (T-SQL)

  4. Vad betyder/händer när du använder `INNER JOIN` med flera databastabellsatser?