Python PostgreSQL - Tabela de descarte
Você pode eliminar uma tabela do banco de dados PostgreSQL usando a instrução DROP TABLE.
Sintaxe
A seguir está a sintaxe da instrução DROP TABLE no PostgreSQL -
DROP TABLE table_name;
Exemplo
Suponha que criamos duas tabelas com o nome CRICKETERS e EMPLOYEES usando as seguintes consultas -
postgres=# CREATE TABLE CRICKETERS (
First_Name VARCHAR(255), Last_Name VARCHAR(255), Age int,
Place_Of_Birth VARCHAR(255), Country VARCHAR(255)
);
CREATE TABLE
postgres=#
postgres=# CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20),
AGE INT, SEX CHAR(1), INCOME FLOAT
);
CREATE TABLE
postgres=#
Agora, se você verificar a lista de tabelas usando o comando “\ dt”, poderá ver as tabelas criadas acima como -
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
public | employee | table | postgres
(2 rows)
postgres=#
A declaração a seguir exclui a tabela chamada Employee do banco de dados -
postgres=# DROP table employee;
DROP TABLE
Uma vez que você excluiu a tabela Employee, se você recuperar a lista de tabelas novamente, poderá observar apenas uma tabela nela.
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
(1 row)
postgres=#
Se você tentar deletar a tabela Employee novamente, uma vez que você já a deletou, você receberá um erro dizendo “table does not exist” como mostrado abaixo -
postgres=# DROP table employee;
ERROR: table "employee" does not exist
postgres=#
Para resolver isso, você pode usar a cláusula IF EXISTS junto com a instrução DELTE. Isso remove a tabela se ela existir, caso contrário, ignora a operação DLETE.
postgres=# DROP table IF EXISTS employee;
NOTICE: table "employee" does not exist, skipping
DROP TABLE
postgres=#
Removendo uma tabela inteira usando Python
Você pode descartar uma tabela sempre que precisar, usando a instrução DROP. Mas você precisa ter muito cuidado ao excluir qualquer tabela existente, pois os dados perdidos não serão recuperados após a exclusão de uma tabela.
import psycopg2
#establishing the connection
conn = psycopg2.connect(database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432')
#Setting auto commit false
conn.autocommit = True
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists
cursor.execute("DROP TABLE emp")
print("Table dropped... ")
#Commit your changes in the database
conn.commit()
#Closing the connection
conn.close()
Resultado
#Table dropped...