On Sep 16, 2010, at 11:15 AM, Michael Bayer wrote:
>
> On Sep 16, 2010, at 10:47 AM, Chris Withers wrote:
>
>> On 16/09/2010 14:32, Michael Bayer wrote:
>>>
>>>> session imported from Meta ? If use Meta.Session.execute it's returns
>>>> RowProxy, which has no lastrowid parameter.
>>>
>>> execute() does not return a RowProxy. All execute() methods return a
>>> ResultProxy which consists of metadata about a result as well as an
>>> interator interface that produces RowProxy instances.
>>
>> Right, but I wonder if this mirrors what the OP reports:
>>
>> return self.cursor.lastrowid
>> AttributeError: 'NoneType' object has no attribute 'lastrowid'
>
> thats a bug, a regression introduced in 0.6.4. will fix.
this bug is fixed in r1668e771ad16 . r.lastrowid should work with 0.6.3 and
previous, as does "SELECT LAST_INSERT_ID()" if you are correctly calling it on
the same transaction.
Here is an example:
from sqlalchemy import *
from sqlalchemy.orm import *
m = MetaData()
t = Table("t", m,
Column("x", Integer, primary_key=True),
Column('data', String(50))
)
e = create_engine('mysql://scott:ti...@localhost/test')
t.drop(e)
t.create(e)
s = Session(e)
for i in xrange(10):
r = s.execute("insert into t (data) values ('foo')")
print s.scalar("SELECT LAST_INSERT_ID()")
output:
1
2
3
4
5
6
7
8
9
10
>
> execute() still doenst return a RowProxy tho
>
>
>>
>>>>> type(result)
>> <class 'sqlalchemy.engine.base.ResultProxy'>
>>
>>>>> session.commit()
>> 2010-09-16 15:43:06,034 INFO sqlalchemy.engine.base.Engine.0x...e610 COMMIT
>>>>> result.lastrowid
>> Traceback (most recent call last):
>> File "<console>", line 1, in <module>
>> File "SQLAlchemy-0.6.4-py2.6.egg/sqlalchemy/engine/base.py", line 2310, in
>> lastrowid
>> return self.cursor.lastrowid
>> AttributeError: 'NoneType' object has no attribute 'lastrowid'
>>
>> I would have thought MySQL would support lastrowid?
>>
>> Chris
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sqlalchemy" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/sqlalchemy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.