在MySQL中创建表

时间:2011-06-23 07:08:37

标签: mysql mysql-error-1146

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

1 个答案:

答案 0 :(得分:1)

我能想到的唯一一件事就是创建了表格,例如root用户和您正在使用的用户无权访问该表。在这种情况下,您无法从中进行选择(不确定它是否会在show tables命令中过滤掉)

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