美文网首页
Python mysql获取主键id

Python mysql获取主键id

作者: 简书用户9527 | 来源:发表于2018-04-25 22:41 被阅读202次

用到的mysql语句主要为:

author_id = cursor.lastrowid
相等于 : author_id = conn.insert_id()

有这么一段需求,插入数据后,获取返回的主键id,首次可以获取到,第二次插入失败,就获取不到主键id了。其实我们可以这样实现:

(一)需求:

例子:

我们将name , plat(平台)为唯一主键,

因为name 在不同platform上可能相同,所以对于不同platform的name,我们都要将name存进去,是同一platform的name 就不再进行第二次存入

(二)Python代码实现:

# 1 先进行查询是否存在
# 2 再进行更新操作(其实这一步可以不用的)
# 3 对数据进行插入

author_id = None
## (一)insert into mysql
try:
    # 查重处理
    self.cursor.execute("""select author_id from tb_author where name = %s and platform = %s """,
                   [item['name'], item['platform']])
    # 是否有重复数据
    repetition = self.cursor.fetchone()
    # 重复
    if repetition:
        if len(repetition) > 0:
            author_id = repetition[0]
    else:
        # 更新
        result_code = self.cursor.execute(
            "UPDATE  tb_author set avatar=%s,type=%s,fans_count=%s,scan_count=%s,collect_count=%s,is_delete=%s where tb_author.name = %s and tb_author.platform = %s",
            [item['avatar'], item['type'], item['fans_count'], item['scan_count'], item['collect_count'],
             item['is_delete'], item['name'], item['platform']])
        # 第一次插入
        if not result_code:
            self.cursor.execute(
                "insert into tb_author (name,platform,avatar,type,fans_count,scan_count,collect_count,is_delete,gmt_create,gmt_modified) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                (item['name'], item['platform'], item['avatar'], item['type'], item['fans_count'],
                 item['scan_count'], item['collect_count'], item['is_delete'], item['gmt_create'],
                 item['gmt_modified']))
            author_id = self.cursor.lastrowid
    print('author_id ==== > ',author_id)
except Exception as e:
    print('inser mysql error ---> ',e)
self.conn.commit()
self.cursor.close()
self.conn.close()


相关文章

  • Python mysql获取主键id

    用到的mysql语句主要为: author_id = cursor.lastrowid相等于 : author_i...

  • Python操作MySQL获取插入数据的主键id

    获取插入数据的主键id 通过 database.insert_id() 方法可以获取插入数据的主键id, 注意一定...

  • MyBatis获取插入数据主键

    ibatis获取主键方式 在ibatis时代我们通过 SELECT LAST_INSERT_ID()方式获取主键...

  • MongoDB之创建文档

    文档主键_id 唯一标识,不同的文档有不同的主键id.跟MySQL中的primary key类似。 文档主键不可以...

  • sql练习题

    1. mysql查询 两张表:user用户表:id (主键,自增),namebuy 购买记录表: id (主键,自...

  • MySQL之主键

    引用 数据表的主键选择 设计套路:Mysql主键的选择 数据库的唯一标示符(ID)的选择 MySQL 使用自增ID...

  • Mysql-事务隔离级别

    事务隔离级别 my_id是主键 mysql> select * from mytable; +----------...

  • 自定义主键后,需要注意的地方

    订单Order模型覆盖主键后 关联模型OrderItem保存数据时报错(该模型主键获取到的是Order模型id主键...

  • Mybatis注解开发

    添加 使用注解方式进行添加特殊情况,获取最新主键的id 查询最新数据的主键last_insert_id 查询最新数...

  • (8)主键id 自增id

    1、不设置主键mysql如何处理? InnoDB自动创建 一个不可见、6字节row_id(作为主键id),由Inn...

网友评论

      本文标题:Python mysql获取主键id

      本文链接:https://www.haomeiwen.com/subject/aajulftx.html