SQLAlchemy를 이용한 SQLite 테이블 삭제
Table.drop() 메서드 사용
from sqlalchemy import create_engine, Table, MetaData
engine = create_engine('sqlite:///mydb.db')
# 삭제하려는 테이블 이름
table_name = 'my_table'
# 메타데이터 객체 생성
metadata = MetaData()
# 테이블 객체 생성
table = Table(table_name, metadata, bind=engine)
# 테이블 삭제
table.drop()
Engine.execute() 메서드 사용
from sqlalchemy import create_engine
engine = create_engine('sqlite:///mydb.db')
# SQL 쿼리 실행
engine.execute(f"DROP TABLE {table_name}")
from sqlalchemy import create_engine, Session, Table
engine = create_engine('sqlite:///mydb.db')
# 세션 객체 생성
session = Session(engine)
# 테이블 객체 생성
table = Table(table_name, bind=engine)
# SQL 쿼리 실행
session.execute(f"DROP TABLE {table_name}")
# 세션 종료
session.close()
주의 사항:
- 테이블을 삭제하기 전에 백업을 하는 것이 좋습니다.
- 테이블에 연결된 외래 키가 있는 경우, 먼저 외래 키를 제거해야 테이블을 삭제할 수 있습니다.
예제 코드
from sqlalchemy import create_engine, Table, MetaData
# SQLite 데이터베이스 연결
engine = create_engine('sqlite:///mydb.db')
# 삭제하려는 테이블 이름
table_name = 'my_table'
# 메타데이터 객체 생성
metadata = MetaData()
# 테이블 객체 생성
table = Table(table_name, metadata, bind=engine)
# 테이블 삭제
table.drop()
# 테이블 존재 여부 확인
if engine.dialect.has_table(engine, table_name):
print(f"테이블 '{table_name}' 삭제 실패")
else:
print(f"테이블 '{table_name}' 삭제 성공")
테이블 'my_table' 삭제 성공
- 위 코드는 예시이며, 실제 상황에 맞게 수정해야 합니다.
SQLAlchemy를 이용한 SQLite 테이블 삭제 대체 방법
from sqlalchemy import create_engine, MetaData, DropTable
engine = create_engine('sqlite:///mydb.db')
# 메타데이터 객체 생성
metadata = MetaData()
# DropTable 객체 생성
drop_table = DropTable(Table('my_table', metadata, bind=engine))
# 테이블 삭제
drop_table.execute()
DDL 문 사용
from sqlalchemy import create_engine
engine = create_engine('sqlite:///mydb.db')
# SQL 쿼리 실행
engine.execute("DROP TABLE IF EXISTS my_table")
sqlite3 모듈 사용
import sqlite3
# SQLite 데이터베이스 연결
conn = sqlite3.connect('mydb.db')
# 커서 객체 생성
cursor = conn.cursor()
# SQL 쿼리 실행
cursor.execute("DROP TABLE IF EXISTS my_table")
# 커서 객체 닫기
cursor.close()
# 데이터베이스 연결 닫기
conn.close()
python sqlite sqlalchemy