snipy/database.py
def insert_or_update(cursor, table, commit=True, **field_values):
    """
    db update 쿼리 빌딩 및 실행, 단, commit은
    :param cursor: 커서
    :type cursor: Cursor
    :param table: 테이블이름
    :type table: str
    :param commit: 커밋 여부
    :type commit: bool
    :param field_values: insert 또는 업데이트 할 필드 및 값 dict pairs
    :type field_values:dict
    :return:
    """

    q = """INSERT INTO %s ({0}) \nVALUES ({1}) \nON DUPLICATE KEY UPDATE {2} """ % table
    l = len(field_values)

    fields = field_values.keys()
    field = ','.join(fields)
    value = ','.join(['%s'] * l)
    kv = ','.join(['{}=%s'.format(f) for f in fields])

    q = q.format(field, value, kv)
    args = field_values.values() * 2

    cursor.execute(q, args=args)
    if commit:
        cursor.connection.commit()
def insert_or_update(cursor, table, commit=True, **field_values):
    """
    db update 쿼리 빌딩 및 실행, 단, commit은
    :param cursor: 커서
    :type cursor: Cursor
    :param table: 테이블이름
    :type table: str
    :param commit: 커밋 여부
    :type commit: bool
    :param field_values: insert 또는 업데이트 할 필드 및 값 dict pairs
    :type field_values:dict
    :return:
    """

    q = """INSERT INTO %s ({0}) \nVALUES ({1}) \nON DUPLICATE KEY UPDATE {2} """ % table
    l = len(field_values)

    fields = field_values.keys()
    field = ','.join(fields)
    value = ','.join(['%s'] * l)
    kv = ','.join(['{}=%s'.format(f) for f in fields])

    q = q.format(field, value, kv)
    args = field_values.values() * 2

    cursor.execute(q, args=args)
    if commit:
        cursor.connection.commit()
db update 쿼리 빌딩 및 실행, 단, commit은
    :param cursor: 커서
    :type cursor: Cursor
    :param table: 테이블이름
    :type table: str
    :param commit: 커밋 여부
    :type commit: bool
    :param field_values: insert 또는 업데이트 할 필드 및 값 dict pairs
    :type field_values:dict
    :return: