r9108: support multiple creation of indices
[umlisp.git] / create-sql.lisp
index e212536b79bd5a1ca58445c7bf66937a6b5e7e44..66b9c028c8cfd1c1023dba59cb66bfd75da97ad2 100644 (file)
   (dolist (file *umls-files*)
     (sql-insert-values conn file)))
 
+(defun drop-index-cmd (colname tablename)
+  "Return sql create index command"
+  (case *umls-sql-type
+    (:mysql
+     (format nil "DROP INDEX ~a ON ~a"
+            (concatenate 'string tablename "_" colname "_X")
+            tablename))
+    (t
+     (format nil "DROP INDEX ~a"
+            (concatenate 'string tablename "_" colname "_X")))))
+
 (defun sql-create-indexes (conn &optional (indexes +index-cols+))
   "SQL Databases: create all indexes"
   (dolist (idx indexes)
+    (ignore-errors
+     (sql-execute (drop-index-cmd (car idx) (cadr idx)) conn))
     (sql-execute (create-index-cmd (car idx) (cadr idx) (caddr idx)) conn))) 
 
 (defun make-usrl (conn)