add/drop index if index key not exists / exists
This commit is contained in:
parent
98ecfe04dc
commit
c739cd54cb
1 changed files with 5 additions and 5 deletions
|
|
@ -200,15 +200,15 @@ class DbTable:
|
|||
webnotes.conn.sql("alter table `%s` change `%s` `%s` %s" % (self.name, col.fieldname, col.fieldname, col.get_definition()))
|
||||
|
||||
for col in self.add_index:
|
||||
webnotes.conn.sql("alter table `%s` add index `%s`(`%s`)" % (self.name, col.fieldname, col.fieldname))
|
||||
# if index key not exists
|
||||
if not webnotes.conn.sql("show index from `%s` where key_name = `%s`" % (self.name, col.fieldname)):
|
||||
webnotes.conn.sql("alter table `%s` add index `%s`(`%s`)" % (self.name, col.fieldname, col.fieldname))
|
||||
|
||||
for col in self.drop_index:
|
||||
if col.fieldname != 'name': # primary key
|
||||
try:
|
||||
# if index key exists
|
||||
if webnotes.conn.sql("show index from `%s` where key_name = `%s`" % (self.name, col.fieldname)):
|
||||
webnotes.conn.sql("alter table `%s` drop index `%s`" % (self.name, col.fieldname))
|
||||
except _mysql_exceptions.OperationalError, e:
|
||||
if e[0] != 1091: raise e
|
||||
|
||||
|
||||
for col in self.set_default:
|
||||
webnotes.conn.sql("alter table `%s` alter column `%s` set default %s" % (self.name, col.fieldname, '%s'), col.default)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue