programing

SQL 조회를 사용하여 테이블 존재 여부 확인

itmemos 2023. 7. 1. 08:05
반응형

SQL 조회를 사용하여 테이블 존재 여부 확인

여러분, 아래 이외에 다른 테이블이 존재하는지 확인할 수 있는 방법이 있습니까?

  1. select count(*) from <table> where rownum =1
  2. select * from user_table where table_name=<table>

oracle sql을 사용하여 테이블이 존재하는지 확인하는 가장 좋은 방법을 알려주세요.

답변 감사합니다. 제 요구 사항은 현재 월 01/12/2010의 첫 번째 날짜부터 데이터베이스에 surresh_20101201 형식의 테이블 이름이 있는지 확인하는 것입니다. 그렇지 않으면 surresh_20101202 테이블을 확인하고 surresh_20101231까지 확인해야 합니다. 오라클 SQL 쿼리에서 수행할 수 있습니까?

이 작업을 수행할 수 있습니다(오라클의 경우 mssql에는 약간 다릅니다).

select count(*)
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'your_table_name';

대부분의 SQL 서버에는 테이블의 존재 여부를 쿼리할 수 있는 시스템 도메인이 있습니다.하지만 구현에 매우 구체적입니다.예를 들어 MySql의 최신 버전에서는 다음과 같습니다.

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  AND table_name LIKE 'whatever'

서버의 시스템 카탈로그에 문의해야 합니다.SQL Server의 경우 다음과 같은 데이터베이스를 의미하는지는 확실하지 않습니다.

select * from sys.tables where name='your-table-name-'

Oracle SQL Developer에서 사용된 기능:

SELECT COUNT(*) FROM DUAL WHERE EXISTS (
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = 'myschema' AND OBJECT_NAME = 'your_table_name')

그러면 다음 중 하나가 반환됩니다.0또는1테이블이 존재하는지 여부ALL_OBJECTS기록.

아래 쿼리는 Oracle에 트리거하여 DB에 테이블이 있는지 확인할 수 있습니다.

SELECT count(*) count FROM dba_tables where table_name = 'TABLE_NAME'

테이블 'TABLE_NAME'이(가) 데이터베이스에 있는 경우 위 쿼리에서 카운트 1을 반환합니다.

스키마를 보면 이벤트가 sys.objects를 사용하고 동시에 유형을 확인할 수 있습니다.

비슷한 것

언급URL : https://stackoverflow.com/questions/4385346/using-sql-query-to-determine-if-a-table-exists

반응형