我有一个名为 copra4server 的 SQL 数据库,以及一个名为 db_version 的表。我输入:
USE copra4server;
SELECT version FROM db_version;
我得到ERROR 1146 (42S02): Table 'copra4server.db_version' doesn't exist
为什么它试图获取一个名为dbname.tablename的表,这个点表示法是什么意思?
我有一个名为 copra4server 的 SQL 数据库,以及一个名为 db_version 的表。我输入:
USE copra4server;
SELECT version FROM db_version;
我得到ERROR 1146 (42S02): Table 'copra4server.db_version' doesn't exist
为什么它试图获取一个名为dbname.tablename的表,这个点表示法是什么意思?
我认为您对“数据库”与“数据库服务器”有点困惑。
MySQL 是一个数据库服务器。您可以连接到它并查看数据库。注意这里的复数。一台服务器,许多数据库。
您服务器上的一个数据库称为copra4server
. 当你说:
USE copra4server
您是在说“我当前的数据库现在是copra4server
”。因此,您引用的任何表都将被假定在该数据库中。您的查询:
SELECT version FROM db_version;
是真的 - 在引擎盖下 - 说
SELECT version FROM copra4server..db_version;
并且,该表不存在,导致错误消息。
顺便说一句,如果您正在寻找数据库版本,正确的语法是:
SELECT version()
这就是 MySQL 引用表 (db.table) 的方式,因此很明显它正在谈论该数据库中的表。
如果您确定该表存在,请检查您的拼写。
错误非常明显。您的表db_version
不在copra4server
数据库中。
当你说USE copra4server;
那意味着你想使用你的copra4server
数据库
当您从表中选择时,该表db_version
不存在,因此会导致错误。