목차
- 테이블에 레코드 1개 삽입
- 테이블에 레코드 여러 개 삽입
- 삽입된 마지막 레코드의 ID 가져오기
테이블에 레코드 1개 삽입
db.excute(sql, val) 메서드 이용.
방법1. 입력값 구문 통합.
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="autoset",
database="hz"
)
mycursor = mydb.cursor()
sql = "INSERT INTO hz_member (mb_name, mb_level) VALUES ('homzzang', '10')"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
방법2- 입력값 구문 분리. (권장) ★
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="autoset",
database="hz"
)
mycursor = mydb.cursor()
sql = "INSERT INTO hz_member (mb_name, mb_level) VALUES (%s, %s)"
val = ("homzzang", "10")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
주의: mydb.commit() 없으면, 변화가 반영 X
테이블에 레코드 여러 개 삽입
※ db.executemany(sql, val)메서드이용.
※ val 변수엔 Tuple 형태의 레코드를 요소로 하는 List 형태 할당.
[예제]
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="autoset",
database="hz"
)
mycursor = mydb.cursor()
sql = "INSERT INTO hz_member (mb_name, mb_level) VALUES (%s, %s)"
val = [
('AAA', '1'),
('BBB', '2'),
('CCC', '2'),
('DDD', '3'),
('EEE', '3'),
('FFF', '3'),
('GGG', '4'),
('HHH', '4'),
('III', '4'),
('JJJ', '4'),
('KKK', '5'),
('LLL', '5'),
('MMM', '5'),
('NNN', '5')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "recode inserted.")
삽입된 마지막 레코드의 ID 가져오기
cursor.lastrowid 속성에 마지막 삽입 레코드 ID 담김.
[예제]
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="autoset",
database="hz"
)
mycursor = mydb.cursor()
sql = "INSERT INTO hz_member (mb_name, mb_level) VALUES (%s, %s)"
val = ("OOO", "5")
mycursor.execute(sql, val)
mydb.commit()
print("1 record inserted, ID:", mycursor.lastrowid)
PS.
Node.js 데이터 삽입. https://homzzang.com/b/njs-15