0

我在“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;
4

1 回答 1

1

我唯一能想到的是,该表是由 root 创建的,而您使用的用户无权访问该表。在这种情况下,您无法从中进行选择(但不确定它是否会在 show tables 命令中被过滤掉)

以 root 身份登录到该数据库并检查该表是否存在。

于 2011-06-23T07:36:15.400 回答