No tables used

提供:MySQL Practice Wiki

移動: 案内, 検索

エラー概要

MySQLエラー番号 1096
SQLSTATE HY000
エラー名 ER_NO_TABLES_USED
メッセージ No tables used
障害部位 mysqld
該当バージョン any
エラーの原因 テーブルが指定されていない。
対策 以下を参照。
備考 nada

目次

原因

MySQLでは、テーブルからレコードをフェッチしないクエリにおいてもDUALテーブルが必要ない。例えば次のような例である。

mysql> SELECT 1 + 1;
+-------+
| 1 + 1 |
+-------+
|     2 |
+-------+
1 row in set (0.00 sec)

mysql> SELECT UPPER('mysql is a free software.') AS Str;
+---------------------------+
| Str                       |
+---------------------------+
| MYSQL IS A FREE SOFTWARE. |
+---------------------------+
1 row in set (0.00 sec)

従って、文法的にはFROM句のないSELECTは不正ではない。しかしながら、FROM句の指定がないと成立しないクエリがある。例えば次のような場合である。

mysql> SELECT *;
ERROR 1096 (HY000): No tables used

対策

MySQLにはDUALテーブルは必要ないが、きちんと正しいSQL文を書くようにしよう。

個人用ツール