我有具有以下内容的SQL文件:
CREATE TABLE `Task_type` (
`id` int(10) UNSIGNED NOT NULL,
`name` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `Task_type`
--
INSERT INTO `Task_type` (`id`, `name`, `created_at`, `updated_at`) VALUES
(1, 'Task', NULL, NULL),
(2, 'Meeting', NULL, NULL),
(3, 'Phone call', NULL, NULL),
(4, 'Task', NULL, NULL),
(5, 'Meeting', NULL, NULL),
(6, 'Phone call', NULL, NULL);
--
-- Table structure for table `User_logs`
--
CREATE TABLE `User_logs` (
`id` bigint(20) UNSIGNED NOT NULL,
`user_id` bigint(20) NOT NULL,
`login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`logout` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`logged_out` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `User_logs`
--
INSERT INTO `User_logs` (`id`, `user_id`, `login`, `logout`, `time`, `logged_out`) VALUES
(42, 2, '2020-10-14 16:12:37', '2020-10-14 19:09:14', '2020-10-14 16:09:08', 1),
(43, 2, '2020-10-14 20:10:38', '2020-10-15 00:43:04', '2020-10-14 21:43:04', 0),
(44, 1, '2020-10-14 20:46:10', '2020-10-14 20:56:36', '2020-10-14 17:56:17', 1),
(45, 1, '2020-10-14 21:03:09', '2020-10-14 21:06:15', '2020-10-14 18:06:15', 0),
(46, 2, '2020-10-15 07:15:30', '2020-10-15 07:24:38', '2020-10-15 04:19:29', 1),
(47, 2, '2020-10-15 07:24:49', '2020-10-15 07:49:45', '2020-10-15 04:48:48', 1),
(48, 2, '2020-10-15 07:51:25', '2020-10-15 07:57:36', '2020-10-15 04:57:36', 0),
(49, 2, '2020-11-01 21:43:35', '2020-11-01 22:02:26', '2020-11-01 20:02:26', 0);但是,我得到了以下错误:
SQLSTATE42S02:基本表或视图未找到: 1146表'dbs1056212.User_Logs‘不存在(SQL: insert insert
User_Logs(user_id,logged_out)值(1,0))
我被告知,表名应该以大写字母开头,破折号后面的部分可以以小写字母开头,正如您看到的表Task_types命名策略一样,create和insert与User_logs完全相同,它不会引起任何例外,只有表User_logs才会引发这个问题。
该怎么办呢?
数据库为MySQL
发布于 2020-12-07 13:12:03
您将表创建为User_logs。
错误消息说它找不到User_Logs。
这些是不一样的,因为"l“的情况不同。有时这会在MySQL中产生不同,有时它并不取决于系统变量lower_case_table_names的值。
重要的考虑因素在文档中很深
值0。。。使用CREATE或CREATE语句中指定的字母将表和数据库名称存储在磁盘上。名称比较是区分大小写的。
这是Unix系统上系统变量lower_case_table_names的默认设置(但在类似Unix的MacOs上不是这样)。您可以在创建数据库时重写它,但这是非常不寻常的。
https://stackoverflow.com/questions/65181450
复制相似问题