from - ¿Cómo obtengo el "id" después de INSERTAR en la base de datos MySQL con Python?
read mysql python (4)
Ejecuto una declaración INSERT INTO
cursor.execute("INSERT INTO mytable(height) VALUES(%s)",(height))
y quiero obtener la clave principal.
Mi mesa tiene 2 columnas:
id primary, auto increment
height this is the other column.
¿Cómo obtengo el "id", después de que acabo de insertar esto?
Además, cursor.lastrowid
(una extensión dbapi / PEP249 compatible con MySQLdb):
>>> 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
es algo más barato que connection.insert_id()
y mucho más económico que otro viaje redondo a MySQL.
La especificación DBAPI de Python también define el atributo ''lastrowid'' para el objeto cursor, así que ...
id = cursor.lastrowid
... debería funcionar también, y obviamente está basado en la conexión.
Use cursor.lastrowid
para obtener la última fila de ID insertada en el cursor, o connection.insert_id()
para obtener la ID de la última inserción de esa conexión.
SELECT @@IDENTITY AS ''Identity'';
o
SELECT last_insert_id();