Upgraded to beta3.

So you're saying that if we want to be able to drop a constraint later
on we must create it with a name.
Alright.  But I am still getting an Operational Error:

################################################
#!/usr/bin/env python

import sqlalchemy
from sqlalchemy import Table, Column, MetaData
from sqlalchemy.schema import *
from sqlalchemy.types import *

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)

metadata = MetaData()

category = Table('category', metadata,
    Column('name', String (64), nullable=False ),
    PrimaryKeyConstraint('name', name='name'),
)

metadata.create_all(engine)

from sqlalchemy.schema import DropConstraint

engine.execute(DropConstraint(category.constraints.pop()))

################################################

Yields:
$ python /tmp/testthis.py
2010-04-15 11:39:56,367 INFO sqlalchemy.engine.base.Engine.0x...9a2c
PRAGMA table_info("category")
2010-04-15 11:39:56,368 INFO sqlalchemy.engine.base.Engine.0x...9a2c
()
2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c
CREATE TABLE category (
        name VARCHAR(64) NOT NULL,
        CONSTRAINT name PRIMARY KEY (name)
)


2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c
()
2010-04-15 11:39:56,369 INFO sqlalchemy.engine.base.Engine.0x...9a2c
COMMIT
2010-04-15 11:39:56,370 INFO sqlalchemy.engine.base.Engine.0x...9a2c
ALTER TABLE category DROP CONSTRAINT name
2010-04-15 11:39:56,375 INFO sqlalchemy.engine.base.Engine.0x...9a2c
()
2010-04-15 11:39:56,375 INFO sqlalchemy.engine.base.Engine.0x...9a2c
ROLLBACK
Traceback (most recent call last):
  File "/tmp/testthis.py", line 26, in <module>
    engine.execute(DropConstraint(category.constraints.pop()))
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1533, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1086, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1136, in _execute_ddl
    return self.__execute_context(context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1180, in __execute_context
    context.parameters[0], context=context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1249, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor,
context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py",
line 1247, in _cursor_execute
    self.dialect.do_execute(cursor, statement, parameters,
context=context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/
default.py", line 266, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (OperationalError) near "DROP":
syntax error u'ALTER TABLE category DROP CONSTRAINT name' ()

What am I doing wrong here?

-Gerry


On Apr 15, 12:28 am, Michael Bayer <mike...@zzzcomputing.com> wrote:
> don't know why you'd be using beta1 when we're up to beta3.....heres  a fully 
> working example:
>
> from sqlalchemy import *
> from sqlalchemy.schema import *
>
> metadata = MetaData()
>
> c1 = Table('category', metadata,
>    Column('name', String (64), nullable=False ),
>    PrimaryKeyConstraint('name', name='somename')
> )
>
> c2 = Table('category2', metadata,
>    Column('name', String (64), nullable=False ),
>    Column('name2', String (64), nullable=False ),
>    PrimaryKeyConstraint('name', 'name2', name='somename')
> )
>
> print DropConstraint(c1.constraints.pop())
> print DropConstraint(c2.constraints.pop())
>
> On Apr 14, 2010, at 9:40 PM, Gerry Reno wrote:
>
>
>
> > Ok, I tried with the keyword but I get this using 0.6beta1:
>
> >    PrimaryKeyConstraint(id='id'),
> >  File "/usr/lib/python2.5/site-packages/sqlalchemy/schema.py", line
> > 1391, in __init__
> >    super(ColumnCollectionConstraint, self).__init__(**kw)
> > TypeError: __init__() got an unexpected keyword argument 'id'
>
> > -Gerry
>
> > On Apr 14, 9:28 pm, Gerry Reno <gr...@verizon.net> wrote:
> >> What do I do then for a composite primary key?
>
> >> PrimaryKeyConstraint('col1','col2')
>
> >> -Gerry
>
> >> On Apr 14, 9:13 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
>
> >>> PrimaryKeyConstraint(name='name')
>
> >>> On Apr 14, 2010, at 8:22 PM, Gerry Reno wrote:
>
> >>>> category = Table('category', metadata,
> >>>>    Column('name', String (64), nullable=False ),
> >>>>    ...
> >>>>    PrimaryKeyConstraint('name'),
> >>>> )
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalch...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > sqlalchemy+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://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 sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to