【问题标题】:MySQL: ERROR 1146 table doesn't exist...although it doesMySQL:错误 1146 表不存在......虽然它确实存在
【发布时间】:2022-01-04 03:12:49
【问题描述】:

我正在关注教科书中的一个示例,该示例似乎掩盖了有关设置简单 MySQL 的部分。 (我注意到了一些错误,但我相信我已经能够纠正它们)。尽管似乎在终端中正确输入了所有内容并且表格存在,但每次我尝试描述表格时都会收到 1146 错误。

注意:我在 VirtualBox 中的 Windows 7 VM 上运行 MySQL v5.5.15(根据我在书中的示例)。这是一个 FRESH 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.movi​​edb”不存在,这让我相信它正在“moviedb”中寻找一个名为“moviedb”的元素,我认为它应该'不存在,因为我没有创造它。为了显示moviedb的内容,我是否需要“返回”到“根”?虽然我是在学习书中的一个示例,但我也在跟踪一个任意的 YouTube 视频,该视频无需在 CREATE TABLE 和 DESCRIBE 之间输入任何命令。

如果我尝试移动到不同的表然后描述moviedb,我会遇到同样的问题。

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

这是我终端的完整屏幕截图,只是为了透明。我知道我没有使用正确的语法,但是……我不是一个完美的人。如果这有可能是导致错误的原因,我很乐意正确重做,但是我第一次使用了正确的语法并得到了同样的错误。这是采取2:

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

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

-乔

【问题讨论】:

    标签: mysql terminal windows-7


    【解决方案1】:

    DESCRIBE 命令接受一个表名,而您正在给它一个数据库名。当然,MySQL 不知道这一点,并认为您正在寻找一个名为 moviesb 的表。您需要改用DESCRIBE creditcards

    【讨论】:

    • 正确,如果您在下面看到我的评论,我发布后立即意识到。对不起,但也感谢您的回复!
    【解决方案2】:

    用于未来的谷歌搜索。

    • 当您的数据库在服务器上并且您通过 cPanel 控制数据库时,您必须关心这种情况(例如:- sellsSELLS 不是相同的)。尽量匹配数据库表名大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 2011-05-14
      • 1970-01-01
      • 2013-03-29
      • 2017-05-30
      • 1970-01-01
      • 2013-10-20
      • 2016-06-14
      相关资源
      最近更新 更多