Python 스크립트에서 다음 SQL 문을 사용했구요.
import mariadb
conn = mariadb.connect(user=DB_USER, password=DB_PASSWORD, host=DB_HOST, port=DB_PORT, database=DB_NAME)
cur = conn.cursor()
sql = """DELETE FROM ?.?;"""
try:
cur.execute(
sql,
(
DB_NAME,
TABLE_TO_CLEAR,
),
)
except mariadb.Error as e:
print(f"Error: {e}")
그런데 코드가 작동하지 않고, 아래의 오류 가 나오는데요.
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?.?' at line 2
근데, SQL 문을 다음과 같이 바꾸면 문제 없이 잘 작동합니다
sql = f"""DELETE FROM {DB_NAME}.{TABLE_TO_CLEAR};"""
cur.execute(sql)
그러나 이렇게 사용하는 것이 MariaDB 문서를 본 기억으로는 f-string을 사용하는 것이 보안 문제(예: SQL 인젝션) 때문에 피해야한다고 알고 있거든요.
이 스크립트를 여러 데이터베이스와 테이블을 반복하면서 사용하기 때문에 변수로 처리해야 하는데 … 가장 좋은 방법은 무엇일지 문의드립니다.