Python PostgreSQL - Bảng thả
Bạn có thể xóa một bảng từ cơ sở dữ liệu PostgreSQL bằng cách sử dụng câu lệnh DROP TABLE.
Cú pháp
Sau đây là cú pháp của câu lệnh DROP TABLE trong PostgreSQL:
DROP TABLE table_name;
Thí dụ
Giả sử chúng ta đã tạo hai bảng có tên CRICKETERS và EMPLOYEES bằng cách sử dụng các truy vấn sau:
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=#
Bây giờ nếu bạn xác minh danh sách các bảng bằng lệnh “\ dt”, bạn có thể thấy các bảng đã tạo ở trên là:
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
public | employee | table | postgres
(2 rows)
postgres=#
Câu lệnh sau xóa bảng có tên Nhân viên khỏi cơ sở dữ liệu -
postgres=# DROP table employee;
DROP TABLE
Vì bạn đã xóa bảng Nhân viên, nếu bạn truy xuất lại danh sách các bảng, bạn chỉ có thể quan sát một bảng trong đó.
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
(1 row)
postgres=#
Nếu bạn cố gắng xóa lại bảng Nhân viên, vì bạn đã xóa nó rồi, bạn sẽ gặp lỗi “bảng không tồn tại” như hình dưới đây -
postgres=# DROP table employee;
ERROR: table "employee" does not exist
postgres=#
Để giải quyết vấn đề này, bạn có thể sử dụng mệnh đề IF EXISTS cùng với câu lệnh DELTE. Thao tác này sẽ xóa bảng nếu nó tồn tại, nếu không thì sẽ bỏ qua thao tác DLETE.
postgres=# DROP table IF EXISTS employee;
NOTICE: table "employee" does not exist, skipping
DROP TABLE
postgres=#
Xóa toàn bộ bảng bằng Python
Bạn có thể bỏ một bảng bất cứ khi nào bạn cần, bằng cách sử dụng câu lệnh DROP. Nhưng bạn cần phải rất cẩn thận trong khi xóa bất kỳ bảng nào hiện có vì dữ liệu bị mất sẽ không được phục hồi sau khi xóa bảng.
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()
Đầu ra
#Table dropped...