我在“database_name”中创建了一个表license_serial。但是当我尝试创建第二个名为license的表时,它表示它已经存在 这是为什么 ?我的数据库只包含license_serial.frm和db.opt。
mysql> SHOW TABLES;
+---------------------+
| Tables_in_mobilemp3 |
+---------------------+
| license_serial |
+---------------------+
1 row in set (0.00 sec)
mysql> select * from license;
ERROR 1146 (42S02): Table 'mobilemp3.license' doesn't exist
创建第二个表:
CREATE TABLE `license` (
`id` int(10) unsigned NOT NULL auto_increment,
`serial_id` int(10) unsigned NOT NULL,
`uid` bigint(20) unsigned NOT NULL,
`active` tinyint(1) NOT NULL,
`first_seen` timestamp NOT NULL default CURRENT_TIMESTAMP,
`last_seen` timestamp NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `serial_uid` (`serial_id`,`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
给出以下错误消息:
ERROR 1050 (42S01): Table 'mobilemp3.license' already exists
编辑:
解决方案就是这个(按此顺序):
drop database databasename;
create database databasename;
use databasename;
答案 0 :(得分:1)
我能想到的唯一一件事就是创建了表格,例如root用户和您正在使用的用户无权访问该表。在这种情况下,您无法从中进行选择(不确定它是否会在show tables命令中过滤掉)
以root身份登录到该数据库并检查该表是否存在。