:param name: name of the constraint.
:param tablename: tablename.
:param type: optional, required on MySQL. can be
- 'foreignkey', 'unique', or 'check'
+ 'foreignkey', 'primary', 'unique', or 'check'
"""
t = self._table(tablename)
types = {
'foreignkey':lambda name:schema.ForeignKeyConstraint(
[], [], name=name),
+ 'primary':schema.PrimaryKeyConstraint,
'unique':schema.UniqueConstraint,
'check':lambda name:schema.CheckConstraint("", name=name),
None:schema.Constraint
"ALTER TABLE t1 DROP FOREIGN KEY f1"
)
+def test_drop_constraint_primary():
+ context = op_fixture('mysql')
+ op.drop_constraint('primary', 't1',type='primary')
+ context.assert_(
+ "ALTER TABLE t1 DROP PRIMARY KEY "
+ )
+
def test_drop_unique():
context = op_fixture('mysql')
op.drop_constraint("f1", "t1", "unique")