mysql数据插入覆盖和时间戳的问题及解决


Posted in MySQL onMarch 25, 2022

数据插入覆盖和时间戳问题

1.数据插入问题

当我们insert数据时,插入datetime类型,此类型的字段,存储数据格式为:  YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31',并且允许使用字符串或数字为此列复制。

日期赋值时,允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00

我们传的时候 insert into test(count_data) values (20190922). 不要把20190922转为2019-09-22

使用ignore关键字,避免重复插入记录可以使用:(主健会变化)

insert ignore into student_task_trace (student_id) VALUES (20)

使用Replace,如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除,存入新纪录:

REPLACE INTO student_task_trace (student_id) VALUES (20)

如果有主键的情况下,可以通过惟一索引来防止重复数据的插入

数据插入一个事件的时候 有好几个不同的值 总会覆盖 ,所以需要给不同值的字段设置个唯一索引。

除非清空(truncate  表名)

2. 时间加减问题

如果想做时间加减的话 必须把时间变成unix时间戳 如当前时间—创建时间

SELECT user_id, device, UNIX_TIMESTAMP(create_time) create_time from t_user

int(time.time() - create_time).   不转unix无法操作

3. 时间格式化问题

如果想让时间正常显示,就需要在写sql的时候给他做格式化

SELECT DATE_FORMAT(grant_end_time, '%%Y-%%m-%%d') grant_end_time from xxxx

mysql数据插入覆盖和时间戳的问题及解决

覆盖旧数据的mysql插入

1、添加唯一索引需要保证该值只有一个

2、唯一索引需要放在最前面

3、更新的数据需要在list后面再添加一个来更新

from requests_html import HTMLSession
import pymysql
import json
import time
def mysql_db():
    a = html_data()
    #print(tuple1)
    db = pymysql.connect(
        host="localhost",
        user="root",
        passwd="zdl12345",
        database = "runoob_db",
        charset = "utf8"
    )
    cc = db.cursor()
    #sql1 = "create table sites2(id int primary key not null auto_increment,rn varchar(255) ,nn varchar(255),ol varchar(255),c2name varchar(255))"
    #cc.execute(sql1)
    #sql3 = "alter table sites2 add unique (nn)"
    #cc.execute(sql3)
    
    #print("add success")
    cc.execute("select * from sites2")
    results = cc.fetchall()
    
    #print(zb_list)
    list = []
    for i in target_data:
        #print(i)
        for k in i.keys():
            #print(key)
        
            if k == "c2name":
                list = [i["nn"],i["rn"],str(i["ol"]),i["c2name"],str(i["ol"])]
                tuple1 = tuple(list)
                #print(tuple1)
                
                sql = "insert into sites2(nn, rn, ol, c2name) values (%s, %s, %s, %s) on duplicate key update ol = %s"
                val = tuple1
                cc.execute(sql,val)
                db.commit()
                
    db.close()
    print("insert success")
def html_data():
    global target_data
    session = HTMLSession()
    url = "https://www.douyu.com/gapi/rkc/directory/1_1/1.html"
    #headers = {'Accept-Charset': 'UTF-8'}
    database = session.get(url)
    data = database.html.text
    #print(data)
    
    jsondata = json.loads(data)
    #print(jsondata)
    target_data = jsondata["data"]["rl"]
    #print(target_data[0])
    #print(type(target_data))
    #return target_data
                 
#html_data()
#while True:
    
    mysql_db()
    time.sleep(1)
    data2 = time.time()
    s = data2 - data1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
数据库连接池
Apr 06 MySQL
Idea连接MySQL数据库出现中文乱码的问题
Apr 14 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
MySQL中LAG()函数和LEAD()函数的使用
Aug 14 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 #MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 #MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 #MySQL
浅谈MySQL中的六种日志
Mar 23 #MySQL
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
实战 快速定位MySQL的慢SQL
关于MySQL临时表为什么可以重名的问题
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php 将excel导入mysql
2009/11/09 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
强制设为首页代码
2006/06/19 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
JS前端加密算法示例
2016/12/22 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
python实现视频分帧效果
2019/05/31 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
入党介绍人评语
2014/05/06 职场文书
党员服务承诺书
2014/05/28 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
python脚本框架webpy的url映射详解
2021/11/20 Python
mysql如何查询连续记录
2022/05/11 MySQL