Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

DROP TABLE - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

DROP TABLE

Rimuove una tabella da un database.

Se stai tentando di svuotare una tabella di righe, senza rimuovere la tabella, utilizza il comando DELETE o TRUNCATE.

DROP TABLE rimuove i vincoli esistenti sulla tabella di destinazione. È possibile rimuovere più tabelle con un singolo comando DROP TABLE.

Non è possibile eseguire DROP TABLE con una tabella esterna all'interno di una transazione (BEGIN … END). Per ulteriori informazioni sulle transazioni, consultare Isolamento serializzabile.

Per trovare un esempio in cui il privilegio DROP è concesso a un gruppo, consultare GRANT Esempi.

Privilegi richiesti

Di seguito sono riportati i privilegi richiesti per DROP TABLE:

  • Superuser

  • Utenti con il privilegio DROP TABLE

  • Il proprietario della tabella con il privilegio USAGE sullo schema

Sintassi

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

Parametri

IF EXISTS

Clausola che indica che se la tabella specificata non esiste, il comando non deve apportare modifiche e deve restituire un messaggio che la tabella non esiste, piuttosto che terminare con un errore.

Questa clausola è utile durante lo scripting, quindi lo script ha esito positivo se DROP TABLE viene eseguito su una tabella inesistente.

name

Nome della tabella da rimuovere.

CASCADE

Clausola che indica di rimuovere automaticamente gli oggetti che dipendono dalla tabella, come le viste.

Per creare una vista che non dipende da altri oggetti del database, come viste e tabelle, includi la clausola WITH NO SCHEMA BINDING nella definizione della vista. Per ulteriori informazioni, consulta CREATE VIEW.

RESTRICT

Clausola che indica di non eliminare la tabella se sono presenti oggetti che dipendono da essa. Questa operazione costituisce l'impostazione predefinita.

Esempi

Rimozione di una tabella senza dipendenze

L'esempio seguente crea e rimuove una tabella denominata FEEDBACK che non ha dipendenze:

create table feedback(a int); drop table feedback;

Se una tabella contiene colonne a cui fanno riferimento le viste o altre tabelle, Amazon Redshift visualizza un messaggio come il seguente.

Invalid operation: cannot drop table feedback because other objects depend on it

Rimozione simultanea di due tabelle

Il seguente set di comandi crea una tabella FEEDBACK e una tabella BUYERS e quindi elimina entrambe le tabelle con un singolo comando:

create table feedback(a int); create table buyers(a int); drop table feedback, buyers;

Rimozione di una tabella con una dipendenza

Le seguenti operazioni mostrano come rimuovere una tabella denominata FEEDBACK utilizzando l'opzione CASCADE.

Innanzitutto, crea una semplice tabella denominata FEEDBACK utilizzando il comando CREATE TABLE:

create table feedback(a int);

Quindi, utilizza il comando CREATE VIEW per creare una vista denominata FEEDBACK_VIEW che si basa sulla tabella FEEDBACK:

create view feedback_view as select * from feedback;

L'esempio seguente rimuove la tabella FEEDBACK e rimuove anche la vista FEEDBACK_VIEW, perché FEEDBACK_VIEW dipende dalla tabella FEEDBACK:

drop table feedback cascade;

Visualizzazione delle dipendenze per una tabella

Per restituire le dipendenze per la tabella, utilizza l'esempio seguente. Sostituisci my_schema e my_table con il tuo schema e la tua tabella.

SELECT dependent_ns.nspname as dependent_schema , dependent_view.relname as dependent_view , source_ns.nspname as source_schema , source_table.relname as source_table , pg_attribute.attname as column_name FROM pg_depend JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid AND pg_depend.refobjsubid = pg_attribute.attnum JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace WHERE source_ns.nspname = 'my_schema' AND source_table.relname = 'my_table' AND pg_attribute.attnum > 0 ORDER BY 1,2 LIMIT 10;

Per eliminare my_table e le relative dipendenze, utilizzate l'esempio seguente. Questo esempio restituisce anche tutte le dipendenze per la tabella che è stata rilasciata.

DROP TABLE my_table CASCADE; SELECT dependent_ns.nspname as dependent_schema , dependent_view.relname as dependent_view , source_ns.nspname as source_schema , source_table.relname as source_table , pg_attribute.attname as column_name FROM pg_depend JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid AND pg_depend.refobjsubid = pg_attribute.attnum JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace WHERE source_ns.nspname = 'my_schema' AND source_table.relname = 'my_table' AND pg_attribute.attnum > 0 ORDER BY 1,2 LIMIT 10; +------------------+----------------+---------------+--------------+-------------+ | dependent_schema | dependent_view | source_schema | source_table | column_name | +------------------+----------------+---------------+--------------+-------------+

Rimozione di una tabella utilizzando IF EXISTS

L'esempio seguente rimuove la tabella FEEDBACK se esiste oppure non esegue nulla e restituisce un messaggio se non esiste:

drop table if exists feedback;

Argomento successivo:

DROP USER

Argomento precedente:

DROP SCHEMA
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.