         sql.limit = 1
         return execute(sql)?.first
     }
-    
+
     public func fetch(table table: String, filter: Filter?) -> [[String: Binding?]]? {
         let sql = SQL(operation: .SELECT, table: table)
         sql.filter = filter

            }
            return columnDefinition
        }
        
        if existingTables.contains(tableName) {
            let select = "select * from \(tableName) limit 0"
            do{
                let statement = try self.database.prepare(select)
                let columnNames = statement.columnNames
                propertyDatas.forEach{ property in
                    if !columnNames.contains(property.name!) {
                        let alertSQL = "alter table \(tableName) add column \(columnDefinition)"
                        execute(alertSQL)
                    }
                }
            } catch {
                
            }
        } else {
            var statement = "CREATE TABLE \(tableName) ("
            var columnDefinitions: [String] = []
            for propertyData in propertyDatas {

            return nil
        }
    }

    public func delete(table table: String, filter: Filter?) {
        let sql = SQL(operation: .DELETE, table: table)
        sql.filter = filter
        execute(sql)?.run()
    }

    public func update(table table: String, filter: Filter?, data: [String: Binding?]) {
        let sql = SQL(operation: .UPDATE, table: table)
        sql.filter = filter
        sql.data = data
        execute(sql)?.run()
    }

    public func insert(table table: String, items: [[String: Binding?]]) {
        for item in items {
            let sql = SQL(operation: .INSERT, table: table)
