mysql 插入数据三种情况

1、存在即忽略 IGNORE
INSERT IGNORE INTO test(name, modified_at)VALUES(%s, NOW());
2、存在即更新,自增id主键不变 ON DUPLICATE KEY  UPDATE
INSERT  INTO test(name, modified_at)VALUES(%s, NOW()) 
ON DUPLICATE KEY  UPDATE f_modified_at=NOW();
3、存在即更新,自增id主键变 REPLACE
REPLACE  INTO test(name, modified_at)VALUES(%s, NOW());

 

    # 批量插入数据到操作表
    def many_insert(self, args, table_name):
        """
        :param args:
        :param table_name:
        :return:
        """
        # 根据数据获取动态的插入字段
        data = args[0]
        cols = ', '.join(['`{}`'.format(k) for k in data.keys()])
        val_cols = ', '.join(['%({})s'.format(k) for k in data.keys()])
        sql = """
            INSERT INTO %s(%s) values(%s)
        """ % (table_name, cols, val_cols)
        logger.sql(sql)
        try:
            tdata_db.many_insert(sql, args)
        except Exception as e:
            logger.exception(e)
            logger.error(sql)
            abort_error(500, message='批量插入数据到' + table_name + '表失败')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值