数据库名称: Mysql
数据库版本:5.7.26
内容/问题描述:
我只有执行很简单的一句insert 语法
为什么却很常出现 Waiting for table metadata lock 的问题
我show processlist,也没看到任何DDL 的语法
要写入的 table,schema 如下
CREATE TABLE `tinker` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL COMMENT '使用者流水号',
`on_time` datetime DEFAULT NULL COMMENT '上班时间',
`off_time` datetime DEFAULT NULL COMMENT '下班时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `FX_punch_time_user_id` (`user_id`) USING BTREE,
CONSTRAINT `FX_punch_time_user_id` FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1
DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='打卡记录';
关联的users schema如下:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登入帐号',
`password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登入密码',
`enable` enum('Y','N','D') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '启用状态',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `users_name_unique` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci COMMENT='员工资料';
然后就只是很简单的执行这么一句insert语法
INSERT INTO `tinker` ( `user_id`, `on_time`, `off_time`)
VALUES
( 5, '2019-05-30 07:58:21', NULL);
谢谢回答