On Oct 5, 2013, at 1:58 AM, limodou <[email protected]> wrote: > Today I found if I have an id column in a table, and the autoincrement > attribute is True, when I created the table it's right, but when I print the > create statment is not right for autoincrement. The testing code is: > > from sqlalchemy import * > from sqlalchemy.schema import CreateTable > > engine = create_engine('mysql://root:root@localhost/test', echo=True) > metadata = MetaData() > t = Table('mytable', metadata, > Column('gid', Integer, primary_key=True, autoincrement=True), > Column('id', Integer, primary_key=True) > ) > metadata.create_all(engine) > print CreateTable(t)
do the create table like this: print CreateTable(t).compile(dialect=engine.dialect) > > And the result is: > > 2013-10-05 12:59:54,523 INFO sqlalchemy.engine.base.Engine SELECT DATABASE() > 2013-10-05 12:59:54,523 INFO sqlalchemy.engine.base.Engine () > 2013-10-05 12:59:54,526 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES > LIKE 'character_set%%' > 2013-10-05 12:59:54,526 INFO sqlalchemy.engine.base.Engine () > 2013-10-05 12:59:54,526 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES > LIKE 'sql_mode' > 2013-10-05 12:59:54,528 INFO sqlalchemy.engine.base.Engine () > 2013-10-05 12:59:54,538 INFO sqlalchemy.engine.base.Engine DESCRIBE `mytable` > 2013-10-05 12:59:54,538 INFO sqlalchemy.engine.base.Engine () > 2013-10-05 12:59:54,552 INFO sqlalchemy.engine.base.Engine ROLLBACK > 2013-10-05 12:59:54,575 INFO sqlalchemy.engine.base.Engine > CREATE TABLE mytable ( > gid INTEGER NOT NULL AUTO_INCREMENT, > id INTEGER NOT NULL, > PRIMARY KEY (gid, id) > ) > > > 2013-10-05 12:59:54,575 INFO sqlalchemy.engine.base.Engine () > 2013-10-05 12:59:55,332 INFO sqlalchemy.engine.base.Engine COMMIT > > CREATE TABLE mytable ( > gid INTEGER NOT NULL, > id INTEGER NOT NULL, > PRIMARY KEY (gid, id) > ) > > So the above is right, and it's gid INTEGER NOT NULL AUTO_INCREMENT, but the > next is not right, it losts AUTO_INCREMENT. > > I tried to check the code and I found the implementation of > dialects/sql/mysql/base.py:get_column_specification(1408) is not like > sql/compiler.py:get_column_specification(2021). I think maybe is a bug. > > BTW, my salalchemy version is 8.0. > > -- > I like python! > UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/ > UliWeb <<simple web framework>>: https://github.com/limodou/uliweb > My Blog: http://my.oschina.net/limodou > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/groups/opt_out.
signature.asc
Description: Message signed with OpenPGP using GPGMail
