Để thả một bảng trong SQLite, hãy sử dụng DROP TABLE
tuyên bố.
Chạy câu lệnh này sẽ xóa bảng khỏi cơ sở dữ liệu. Nó hoàn toàn bị xóa khỏi lược đồ cơ sở dữ liệu và tệp đĩa. Do đó, bảng không thể được phục hồi. Tất cả các chỉ số và trình kích hoạt được liên kết với bảng cũng bị xóa.
DROP TABLE
cơ bản Tuyên bố
Trước tiên, hãy xem lại các bảng trong cơ sở dữ liệu của chúng tôi:
sqlite> .tables Albums Albums1 Albums2 Artists
Chúng tôi có một vài chiếc bàn trống từ các bài tập trước của chúng tôi, vì vậy hãy bỏ một chiếc xuống.
Đoạn mã sau sẽ xóa Albums1 bảng:
DROP TABLE Albums1;
Sau khi chạy mã đó, chúng tôi có thể xem lại các bảng của mình:
sqlite> .tables Albums Albums2 Artists
Bảng đã bị xóa.
Kiểm tra xem Bảng có tồn tại không
Bạn có thể sử dụng IF EXISTS
để kiểm tra xem bảng có tồn tại hay không trước khi SQLite cố gắng loại bỏ nó.
Làm điều này sẽ ngăn chặn bất kỳ lỗi nào thường được tạo ra nếu bảng không tồn tại.
Trước tiên, hãy thử bỏ một bảng không tồn tại không có sử dụng IF EXISTS
mệnh đề. Hãy thử thả cái mà chúng ta vừa thả:
DROP TABLE Album1;
Điều này dẫn đến kết quả sau:
sqlite> DROP TABLE Album1; Error: no such table: Album1
Được rồi, chúng ta hãy thử lại lần nữa, nhưng lần này với IF EXISTS
mệnh đề:
DROP TABLE IF EXISTS Album1;
Kết quả:
sqlite> DROP TABLE IF EXISTS Album1; sqlite>
Vì vậy, không có gì xảy ra. Quan trọng là không có lỗi nào được đưa ra.
Thả một bảng bằng các phím chính
Vì vậy, điều gì sẽ xảy ra nếu chúng ta cố gắng loại bỏ một bảng có chứa các khóa chính và có các khóa ngoại tham chiếu đến chúng?
Hãy thử nó:
DROP TABLE Artists;
Kết quả:
sqlite> DROP TABLE Artists; Error: FOREIGN KEY constraint failed
Đúng như dự đoán, nó đã thất bại. Vì vậy, nếu bạn cần loại bỏ một bảng, trước tiên bạn sẽ cần loại bỏ bất kỳ bảng nào được liên kết.
SQLite thực sự cố gắng xóa dữ liệu trước khi nó làm rơi một bảng. Chính hành động xóa này là nguyên nhân thực hiện bất kỳ kiểm tra ràng buộc khóa ngoại nào.
SQLite cũng loại bỏ bất kỳ chỉ số hoặc trình kích hoạt nào được liên kết với bảng trước khi nó thực hiện thao tác xóa (và thả tiếp theo).