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 相关文章推荐
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
Navicat连接MySQL错误描述分析
Jun 02 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
Mysql中where与on的区别及何时使用详析
Aug 04 MySQL
MySQL分区表实现按月份归类
Nov 01 MySQL
MySQL数据库索引的最左匹配原则
Nov 20 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
Mysql数据库group by原理详解
Jul 07 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
PHP 柱状图实现代码
2009/12/04 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
Python文件处理
2016/02/29 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
基于python图像处理API的使用示例
2020/04/03 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
如何用Python徒手写线性回归
2021/01/25 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
delegate与普通函数的区别
2014/01/22 面试题
制定岗位职责的原则
2013/11/08 职场文书
请假条格式范文
2014/04/10 职场文书
市场营销工作计划书
2014/05/06 职场文书
禁止酒驾标语
2014/06/25 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL