1

此查询生成错误,因为 table2 不存在:

Select * FROM table WHERE table2.id IS NOT NULL

在对 id 进行检查之前检查 table2 是否有类似的东西?

Select * FROM table WHERE (EXIST(table2) AND table2.id IS NOT NULL) or not EXIST(table2)
4

2 回答 2

3

您需要查询此系统表:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'yourdatabasename'
AND table_name = 'table2';

如果返回一行,则您的表存在。

于 2010-06-02T14:20:28.547 回答
0

我不相信标准 SQL 中有任何命令或函数可以做到这一点。您可以在发出 SQL 查询之前查询数据字典以检查表是否存在,如下所示:

SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_name = 'xxx';

我不认为它可以在单个 SQL 语句中完成。

于 2010-06-02T14:24:53.440 回答