def translateUpdateModel(database, schema, table, mapDict, valueDict):
    """
    get the sql of UPDATE
    mapDict：Model_feild to  of db_feild
    valueDict:the model_feild Name
    """
    if database is None or schema is None or table is None:
        raise 'interpreter cannot find the db or table'
    if mapDict is None or valueDict is None:
        raise AttributeError('db feild or value not be  none')
    schemaStr = '' if len(schema) <= 0 else f'.{schema}'
    updateStr = f'UPDATE {database}{schemaStr}."{table}"'
    parameters = []
    fields = []
    where = ()
    for k, v in mapDict.items():
        if v.primary_key:
            if k not in valueDict:
                raise 'primary_key not valid'
            if isinstance(valueDict.get(k), int) and valueDict.get(k) <= 0:
                raise 'primary_key not valid'
            where = v.name, valueDict.get(k)
            continue
        if k in valueDict:
            parameters.append(valueDict.get(k))
            fields.append(v.name)
        elif v.default is not None:
            parameters.append(v.default)
            fields.append(v.name)
    if len(parameters) < 0:
        raise 'Update cannot find '
    if len(where) != 2:
        raise 'model not primary_key'
    updateStr = f'{updateStr} \nSET'
    for index, field in enumerate(fields):
        updateStr = f'{updateStr} {field}=${index + 1},'
    updateStr = updateStr.strip(',')
    parameters.append(where[1])
    updateStr = f'{updateStr} \nWHERE {where[0]}=${len(parameters)}'
    return updateStr, parameters
