Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 MySQL 데이터 삽입 후 자동 생성된 ID(lastrowid) 확인하는 방법

MySQL에서는 INSERT 문을 사용해 테이블에 데이터를 삽입합니다. 데이터를 삽입할 때는 두 가지 방식 중 하나를 사용해야 합니다. 첫 번째는 테이블의 컬럼 정의 순서와 동일한 순서로 값을 전달하는 것이고, 두 번째는 컬럼 이름을 명시적으로 지정하면서 해당하는 값들을 함께 전달하는 것입니다.

마지막으로 삽입된 행의 ID를 가져와 출력하려면 lastrowid 속성을 사용합니다. 이 속성은 가장 최근에 삽입된 행의 ID를 반환하는 특수한 값입니다. 다만 이 속성을 사용하기 전에 반드시 충족해야 할 조건이 있습니다.

  • ID 컬럼이 테이블의 기본 키(PRIMARY KEY)여야 합니다.
  • ID 컬럼이 자동 증가(AUTO_INCREMENT)로 설정되어 있어야 합니다.

문법

cs.lastrowid

여기서 cs는 커서(cursor) 객체를 의미합니다.

파이썬에서 MySQL로 삽입된 행의 ID를 얻는 단계

  • MySQL 커넥터 모듈을 임포트합니다.
  • connect() 메서드를 사용하여 데이터베이스와 연결을 설정합니다.
  • cursor() 메서드로 커서 객체를 생성합니다.
  • 테이블에 행을 삽입하는 INSERT 쿼리를 작성합니다.
  • execute() 메서드로 SQL 쿼리를 실행합니다.
  • lastrowid를 사용하여 삽입된 행의 ID를 가져옵니다.
  • 연결을 종료합니다.

예시 테이블

다음과 같이 "Students"라는 이름의 테이블이 있다고 가정해 보겠습니다.

+--------+---------+-----------+------------+
|   id   |  Name   |   City    |   Marks    |
+--------+---------+-----------+------------+
|   1    |  Karan  | Amritsar  |     95     |
|   2    |  Sahil  | Amritsar  |     93     |
|   3    |  Kriti  |  Batala   |     88     |
|   4    |  Amit   |   Delhi   |     90     |
+--------+---------+-----------+------------+

예제 코드

위 테이블에서 id 컬럼은 기본 키이며 자동 증가로 설정되어 있습니다. 새로운 행을 삽입한 후, 마지막으로 삽입된 행의 ID를 출력해 보겠습니다.

import mysql.connector

db = mysql.connector.connect(
    host="your host",
    user="your username",
    password="your password",
    database="database_name"
)

cursor = db.cursor()

# 테이블에 새로운 행 삽입
query = "INSERT INTO Students VALUES(5, 'Priya', 'Amritsar', 90)"
cursor.execute(query)
db.commit()

# 삽입된 행의 ID 출력
print(cursor.lastrowid)

db.close()

실행 결과

5

위 코드에서 cursor.lastrowid는 방금 삽입된 행의 ID인 5를 반환합니다. 이처럼 lastrowid 속성을 활용하면 별도의 추가 쿼리 없이도 자동 증가된 기본 키 값을 즉시 확인할 수 있어, 관련 데이터를 다른 테이블에 연결할 때 매우 유용하게 활용됩니다.