본문 바로가기
MySql

MySQL pyodbc는 모든 형식의 명명 된 매개 변수를 지원합니까?

by 베이스 공부 2020. 11. 18.
반응형

sqlite3에

data = {'test_col': 012345679}
sqlite3_conn.execute("""
    UPDATE test_db SET test_col = :test_col
    ;""", data)

mysql-connector-python에는

data = {'test_col': 012345679}
mysql_conn.execute("""
    UPDATE test_db SET test_col = %(test_col)s
    ;""", data)

하지만 pyodbc는 명명 된 매개 변수의 모든 형식을 지원합니까? 나는 dict 를 execute 메소드에 전달할 수있는 것을 좋아합니다. 매우 편리하며 INSERT INTO ... ON DUPLICATE KEY UPDATE 와 같은 일부 쿼리에는 필요합니다.

 

해결 방법

 

명명 된 매개 변수를 지원하지 않지만 올바른 순서로 전달 된 바인딩 된 매개 변수는 매우 간단합니다.

x = "This"
y = 345

mssql_cur.execute("SELECT * FROM mytable WHERE colx = ? AND coly = ?", x, y)

또는

mssql_cur.execute("SELECT * FROM mytable WHERE colx = ? AND coly = ?", (x, y))

여기에 executemany 매개 변수 전달과 같은 세부 정보 및 옵션이 있습니다.


행운을 빕니다!

 

참조 페이지 https://stackoverflow.com/questions/32748982

 

 

반응형

댓글