0

我有一个名为 copra4server 的 SQL 数据库,以及一个名为 db_version 的表。我输入:

USE copra4server;
SELECT version FROM db_version;

我得到ERROR 1146 (42S02): Table 'copra4server.db_version' doesn't exist

为什么它试图获取一个名为dbname.tablename的表,这个点表示法是什么意思?

4

3 回答 3

0

我认为您对“数据库”与“数据库服务器”有点困惑。

MySQL 是一个数据库服务器。您可以连接到它并查看数据库。注意这里的复数。一台服务器,许多数据库。

您服务器上的一个数据库称为copra4server. 当你说:

USE copra4server

您是在说“我当前的数据库现在是copra4server”。因此,您引用的任何表都将被假定在该数据库中。您的查询:

SELECT version FROM db_version;

是真的 - 在引擎盖下 - 说

SELECT version FROM copra4server..db_version;

并且,该表不存在,导致错误消息。

顺便说一句,如果您正在寻找数据库版本,正确的语法是:

SELECT version()
于 2013-08-30T21:16:59.433 回答
0

这就是 MySQL 引用表 (db.table) 的方式,因此很明显它正在谈论该数据库中的表。

如果您确定该表存在,请检查您的拼写。

于 2013-08-30T21:17:20.503 回答
0

错误非常明显。您的表db_version不在copra4server数据库中。

当你说USE copra4server;那意味着你想使用你的copra4server数据库

当您从表中选择时,该表db_version不存在,因此会导致错误。

于 2013-08-30T21:11:19.023 回答