问个问题
mysql的order表不知为什么,支付时间(pay_time)这个字段数据会变。 随机的某行,都是更新成 订单添加时间+一段固定时间的和,不确定是哪个项目链接数据库更新的数据,或者是有调度任务,怎么查?
问题描述
问题出现的环境背景及自己尝试过哪些方法
尝试查找了这些订单的共性,但是字段上没什么相同的地方,我个人的订单有的被更新了, 有的没有。
相关代码
部分order表数据
CREATE TABLE `aws_orders` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id 无意义',
`oid` varchar(32) DEFAULT '0' COMMENT '订单ID',
`plat_oid` varchar(64) DEFAULT '0' COMMENT '平台交易号',
`uid` int(10) unsigned DEFAULT '0' COMMENT '用户ID',
`add_time` int(10) unsigned DEFAULT '0' COMMENT '创建时间',
`amount` int(10) unsigned DEFAULT '0' COMMENT '订单金额',
`pay_amount` decimal(7,2) unsigned DEFAULT '0.00' COMMENT '支付金额',
`pay_time` varchar(20) DEFAULT '0' COMMENT '支付时间',
`is_delete` tinyint(3) unsigned DEFAULT '0' COMMENT '已删除订单 0否 1是',
`pay_type` tinyint(3) unsigned DEFAULT '0' COMMENT '支付方式 1微信 2支付宝 3免单',
`from` tinyint(3) unsigned DEFAULT '0' COMMENT '订单来源 1网站 2移动端 3IOS 4Android',
`coupon_id` int(10) unsigned DEFAULT '0' COMMENT '优惠码ID',
`from_plat` tinyint(3) unsigned DEFAULT '0' COMMENT '订单来源 0网站 1ios 2android 3IPAD 4Mobile',
`pay_plat` tinyint(3) unsigned DEFAULT '0' COMMENT '支付终端 0网站 1ios 2android 3IPAD 4Mobile',
`type` tinyint(3) unsigned DEFAULT '0' COMMENT '订单类型 0普通订单 1团购 2小团',
`full_cut` varchar(20) DEFAULT '0' COMMENT '满减活动 减掉的金额',
PRIMARY KEY (`id`),
KEY `i_oid` (`oid`) USING BTREE,
KEY `i_uid` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=48035 DEFAULT CHARSET=utf8
有问题的就是pay_time字段,本来是有值的,不知道为啥过一段时间一看,被更新了,已询问公司相关同事和leader,没有人在后端操作。在支付回调和下订单等所有和order表有关的操作中写日志了,也没有这个令人窒息的操作。
一些错误数据
+------------+-----------------+----------------------+--------+-------+
| add_time | pay_time | oid | uid | ispay |
+------------+-----------------+----------------------+--------+-------+
| 1524973498 | 1533008773.6939 | 1524973498601898106 | 60189 | 2 |
| 1524975582 | 1533010805.9663 | 15249755824529331409 | 452933 | 0 |
| 1525001588 | 1533036851.0322 | 15250015884533789469 | 453378 | 2 |
| 1525001992 | 1533037260.197 | 15250019924533763961 | 453376 | 2 |
| 1525002153 | 1533037381.1686 | 15250021534533765879 | 453376 | 2 |
+------------+-----------------+----------------------+--------+-------+
这里也有个点,本来pay_time存的整数,数据错乱后变成了浮点型的数字时间戳。
你期待的结果是什么?实际看到的错误信息又是什么?
现在想知道是为啥被无故更新了
可以试试,
找公司的DBA,让其查看下执行过的SQL语句日志,找到对应的sql,再到程序中找哪边更新了。