Mysql 踩坑记录
Summary: Author: 张亚飞 | Read Time: 2 minute read | Published: 2022-01-13
Filed under
—
Categories:
Linux
—
Tags:
Note,
Mysql 踩坑记录
Mysql
默认 CURRENT_TIMESTAMP UPDATE
问题
Mysql
会将默认第一个非 NULL
的 timestamp
列设为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如下示例:
DROP TABLE IF EXISTS `meet_stutters`;
CREATE TABLE `meet_stutters`
(
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`app_key` varchar(64) NOT NULL COMMENT '应用Key',
`rno` varchar(64) NOT NULL COMMENT '房间号',
`sender` varchar(64) NOT NULL COMMENT '发送端',
`receiver` varchar(64) NOT NULL COMMENT '接收端',
`sno` varchar(64) NOT NULL COMMENT '流ID',
`factor` tinyint(3) UNSIGNED NOT NULL COMMENT '卡顿因素[0: 未知;1: 发送端帧率过低;2: 上行系统CPU占用过高;3: 下行系统CPU占用过高;4: 上行区域不匹配;5: 下行区域不匹配;6: 上行RTT丢包率过高;7: 下行RTT丢包率过高]',
`media` tinyint(3) UNSIGNED NOT NULL COMMENT '媒体类型[0: 默认,1: 音频,2: 视频]',
`start_at` timestamp NOT NULL COMMENT '卡顿开始时间',
`end_at` timestamp NOT NULL COMMENT '卡顿截止时间',
`duration` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '卡顿时长,单位秒',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
`deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
KEY `idx_end_at` (`end_at`) USING BTREE
) DEFAULT CHARSET = utf8mb4 COMMENT ='卡顿因素';
查询已建表
show create table meet_stutters;
CREATE TABLE `meet_stutters` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`app_key` varchar(64) NOT NULL COMMENT '应用Key',
`rno` varchar(64) NOT NULL COMMENT '房间号',
`sender` varchar(64) NOT NULL COMMENT '发送端',
`receiver` varchar(64) NOT NULL COMMENT '接收端',
`sno` varchar(64) NOT NULL COMMENT '流ID',
`factor` tinyint(3) unsigned NOT NULL COMMENT '卡顿因素[0: 未知;1: 发送端帧率过低;2: 上行系统CPU占用过高;3: 下行系统CPU占用过高;4: 上行区域不匹配;5: 下行区域不匹配;6: 上行RTT丢包率过高;7: 下行RTT丢包率过高]',
`media` tinyint(3) unsigned NOT NULL COMMENT '媒体类型[0: 默认,1: 音频,2: 视频]',
`start_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '卡顿开始时间',
`end_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '卡顿截止时间',
`duration` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '卡顿时长,单位秒',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
`deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
KEY `idx_end_at` (`end_at`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='卡顿因素'
可以看到 start_at
设置为 NOT NULL
后,默认加了 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
属性
Comments