有一些业务逻辑,需要检测是否存在某个特定的表后做一些事情(例如数据库按年分表的情况下,定期检查是否存在下一年的表,不存在就新建表),以下SQL(指定是Oracle数据库)可以检测是否存在某张表或者视图(当然如果没有检测视图的需求,可以稍加修改),如果存在表,返回的cnt就大于0,不存在就返回count等于0
-- 如果select出来的结果等于0,说明不存在,大于0,说明表或者视图已存在 select count(*) as cnt from all_objects where object_type in ('TABLE','VIEW') and object_name = 'USER_INFO_2021';
如果值检测表,或者要指定表的owner(可能不同的owner下有相同的表的名字)
-- 只检测表,且owner用户名是SOME_USER select count(*) as cnt from all_objects where owner='SOME_USER' and object_type = 'TABLE' and object_name = 'USER_INFO_2021';
文章评论