Hướng dẫn python mysql get last insert id - python mysql lấy id chèn cuối cùng

224

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi thực hiện một phần chèn vào câu lệnh

cursor.execute("INSERT INTO mytable(height) VALUES(%s)",(height))

Và tôi muốn có được khóa chính.

Bảng của tôi có 2 cột:

id      primary, auto increment
height  this is the other column.

Làm thế nào để tôi có được "id", sau khi tôi chỉ chèn cái này?

Hướng dẫn python mysql get last insert id - python mysql lấy id chèn cuối cùng

Martin Thoma

113K148 Huy hiệu vàng573 Huy hiệu bạc877 Huy hiệu đồng148 gold badges573 silver badges877 bronze badges

Đã hỏi ngày 30 tháng 3 năm 2010 lúc 20:33Mar 30, 2010 at 20:33

1

Sử dụng cursor.lastrowid để nhận ID hàng cuối cùng được chèn trên đối tượng con trỏ hoặc connection.insert_id() để lấy ID từ lần chèn cuối cùng trên kết nối đó.

Đã trả lời ngày 30 tháng 3 năm 2010 lúc 20:37Mar 30, 2010 at 20:37

AmberamberAmber

489K81 Huy hiệu vàng617 Huy hiệu bạc545 Huy hiệu Đồng81 gold badges617 silver badges545 bronze badges

6

Ngoài ra, cursor.lastrowid (tiện ích mở rộng DBAPI/PEP249 được MySQLDB hỗ trợ):

>>> import MySQLdb
>>> connection = MySQLdb.connect(user='root')
>>> cursor = connection.cursor()
>>> cursor.execute('INSERT INTO sometable VALUES (...)')
1L
>>> connection.insert_id()
3L
>>> cursor.lastrowid
3L
>>> cursor.execute('SELECT last_insert_id()')
1L
>>> cursor.fetchone()
(3L,)
>>> cursor.execute('select @@identity')
1L
>>> cursor.fetchone()
(3L,)

cursor.lastrowid rẻ hơn một chút so với connection.insert_id() và rẻ hơn nhiều so với một chuyến đi khứ hồi khác đến MySQL.

Warvariuc

54,8K36 Huy hiệu vàng167 Huy hiệu bạc225 Huy hiệu Đồng36 gold badges167 silver badges225 bronze badges

Đã trả lời ngày 24 tháng 9 năm 2010 lúc 19:59Sep 24, 2010 at 19:59

AndrewandrewAndrew

1.6752 Huy hiệu vàng13 Huy hiệu bạc7 Huy hiệu đồng2 gold badges13 silver badges7 bronze badges

8

Thông số kỹ thuật Python DBAPI cũng xác định thuộc tính 'lastrowid' cho đối tượng con trỏ, vì vậy ...

id = cursor.lastrowid

... cũng nên hoạt động, và nó dựa trên kết nối rõ ràng.

Đã trả lời ngày 3 tháng 1 năm 2011 lúc 0:45Jan 3, 2011 at 0:45

HtechnohtechnoHtechno

5.6014 Huy hiệu vàng25 Huy hiệu bạc37 Huy hiệu đồng4 gold badges25 silver badges37 bronze badges

0

SELECT @@IDENTITY AS 'Identity';

hoặc

SELECT last_insert_id();

Đã trả lời ngày 30 tháng 3 năm 2010 lúc 20:39Mar 30, 2010 at 20:39

KeithkeithKeith

9246 Huy hiệu bạc13 Huy hiệu Đồng6 silver badges13 bronze badges

3

Đây có thể chỉ là một yêu cầu của PYMYSQL trong Python, nhưng tôi thấy rằng tôi phải đặt tên cho bảng chính xác mà tôi muốn ID cho:

In:

cnx = pymysql.connect(host='host',
                            database='db',
                            user='user',
                            password='pass')
cursor = cnx.cursor()
update_batch = """insert into batch set type = "%s" , records = %i, started = NOW(); """
second_query = (update_batch % ( "Batch 1", 22  ))
cursor.execute(second_query)
cnx.commit()
batch_id = cursor.execute('select last_insert_id() from batch')
cursor.close()

batch_id

Ra: 5 ... hoặc bất cứ giá trị Batch_id chính xác nào thực sự là
... or whatever the correct Batch_ID value actually is

Đã trả lời ngày 8 tháng 7 năm 2020 lúc 22:16Jul 8, 2020 at 22:16

EdwardedwardEdward

Huy hiệu bạc 11911 silver badge10 bronze badges

1

Làm cách nào để nhận được ID chèn cuối cùng trong Python?

Để có được và in ID của hàng chèn cuối cùng, Lastrowid được sử dụng. Đây là một từ khóa đặc biệt được sử dụng để nhận ID của hàng được chèn cuối cùng. Có những điều kiện tiên quyết nhất định được chăm sóc trước khi sử dụng phương pháp này. Cột ID phải là khóa chính trong bảng.lastrowid is used. This is a special keyword which is used to get the ID of the last inserted row. There are certain prerequisites to be taken care of before using this method. The ID column must be the primary key in the table.

Làm cách nào để nhận được ID cuối cùng được chèn vào MySQL?

Nếu bạn chèn một bản ghi vào một bảng chứa cột tự động_increment, bạn có thể lấy giá trị được lưu trữ vào cột đó bằng cách gọi hàm mysql_insert_id ().calling the mysql_insert_id() function.

Làm cách nào để nhận được ID hàng được chèn cuối cùng?

Nếu bạn đang tự động_increment với cột, thì bạn có thể sử dụng phương thức last_insert_id ().Phương pháp này nhận được ID của bản ghi được chèn cuối cùng trong MySQL.Chèn một số bản ghi trong bảng bằng lệnh chèn.last_insert_id() method. This method gets the ID of the last inserted record in MySQL. Insert some records in the table using insert command.

Làm cách nào để nhận ID chèn cuối cùng từ một bảng cụ thể?

Cách nhận ID được chèn cuối cùng của bảng MySQL bằng Last_insert_id (), chúng tôi sẽ sử dụng hàm Last_insert_id () để nhận ID được chèn cuối cùng.Last_insert_id () Hàm MySQL trả về giá trị không dấu lớn cho một câu lệnh chèn trên cột tự động_increment.using LAST_INSERT_ID() We will be using the LAST_INSERT_ID() function to get the last inserted id. Last_insert_id() MySQL function returns the BIG UNSIGNED value for an insert statement on an auto_increment column.