MySQL Insert

Insert Into Table

برای وارد کردن محتوا به جداول MySQL باید از اعلام “INSERT INTO” استفاده کرد.

 

مثال: وارد کردن یک رکورد جدید به جدول customer

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

نکته: استفاده از ()mydb.commit به منظور اعمال تغیرات جدید در جدول است در غیر این صورت تغییرات ذخیره نمی‌شوند.

Insert Multiple Rows

برای وارد کردن چند سطر به جدول از متد ()executemany استفاده می‌شود.

پارامتر دوم این متد لیستی از تاپل (Tuple) ها است که حاوی محتوای مورد نظر جهت وارد کردن به جدول است.

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]

mycursor.executemany(sql, val)

mydb.commit()

print(mycursor.rowcount, "was inserted.")

گرفتن شماره سطری که محتوا به آن وارد می‌کنید (Get Inserted ID)

می‌توان شماره سطری که به آن محتوا وارد کرده ایم را با استفاده از شماره اشاره گر سطر گرفت.

اگر چند سطر داده وارد کنید فقط شماره آخرین سطر را می‌دهد.

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Michelle", "Blue Village")
mycursor.execute(sql, val)

mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)