MySQL: 错误 1146 table 不存在...虽然它确实存在

MySQL: ERROR 1146 table doesn't exist...although it does

我正在按照教科书中的示例进行操作,该示例似乎掩盖了有关设置简单 MySQL 的部分。 (我注意到了一些错误,但我相信我已经能够更正它们)。尽管似乎在终端中正确输入了所有内容并且 table 存在,但每次我尝试描述 table.

时都会收到 1146 错误

注意:我在 VirtualBox 中的 运行 MySQL v5.5.15 Windows 7 虚拟机上(根据我在书中所遵循的示例)。这是一个新鲜的 SQL 数据库,所以我们很清楚。

CREATE DATABASE moviedb;

USE moviedb;

CREATE TABLE creditcards(
-->id varchar(20) DEFAULT NULL,
-->first_name varchar(50) DEFAULT NULL,
-->last_name varchar(50) DEFAULT NULL,
-->expiration date DEFAULT NULL);

DESCRIBE moviedb;

ERROR 1146 (42S02): Table 'moviedb.moviedb' doesn't exist

现在,我首先想到的是它说 'moviedb.moviedb' 不存在,这让我相信它正在 'moviedb' 中寻找一个名为 [=33] 的元素=] 我想它不应该存在,因为我没有创建它。我是否需要“返回”到“root”才能显示 moviedb 的内容?尽管我正在关注一本书中的示例,但我也在关注一个任意的 YouTube 视频,该视频无需在 CREATE TABLE 和 DESCRIBE 之间输入任何命令。

如果我尝试移动到另一个 table 然后描述 moviedb,我会遇到同样的问题。

我也运行 SELECT * FROM moviedb;这似乎并没有改变任何东西。

这是我终端的完整屏幕截图,仅供参考 运行sparency。我知道我没有使用正确的语法,但是......我不是一个完美的人。如果这可能是导致错误的原因,我会很乐意正确地重做它,但是我第一次使用了正确的语法并得到了同样的错误。这是采取 2:

我想我在做一些愚蠢的事情,因为我使用的是 MySQL 的旧版本并且语法可能略有不同。

提前感谢大家的任何意见。

-乔

DESCRIBE 命令采用 table 名称,而您要为其指定一个数据库名称。当然,MySQL 并不知道,并认为您正在寻找名为 moviesb 的 table。您需要改用 DESCRIBE creditcards

用于将来 google 次搜索。

  • 当您的数据库在服务器上并且您通过 cPanel 控制您的数据库时,您必须注意大小写(例如:- sellsSELLS 不一样)。尝试始终匹配数据库 table 个名称案例。