SQL 쿼리를 사용하여 데이터베이스가 완전히 비어 있는지 (테이블이 없음) 확인해야합니다. 어떻게 할 수 있습니까?데이터베이스가 비어 있는지 확인하기위한 SQL (테이블 없음)
도움 주셔서 감사합니다.
SQL 쿼리를 사용하여 데이터베이스가 완전히 비어 있는지 (테이블이 없음) 확인해야합니다. 어떻게 할 수 있습니까?데이터베이스가 비어 있는지 확인하기위한 SQL (테이블 없음)
도움 주셔서 감사합니다.
SELECT COUNT(DISTINCT `table_name`) FROM `information_schema`.`columns` WHERE `table_schema` = 'your_db_name'
은 DB에있는 테이블 또는 뷰의 실제 개수를 반환합니다. 그 수가 0이면 테이블이 없습니다.
또한 뷰의 수를 반환합니다. – longneck
그 수가 0보다 큰 경우? 테이블이 없을 수도 있지만 전망이 있습니까? –
@AlexKuznetsov 네,하지만 당신이 그것을 기반으로 테이블없이 볼 수 있다고 생각하지 않습니까? – MiffTheFox
select count(*)
from information_schema.tables
where table_type = 'BASE TABLE'
and table_schema = 'your_database_name_here'
"select * from information_schema.tables"는 대부분의 데이터베이스에서 테이블 목록을 제공합니다. MYSQL에서
당신이, 당신이 현재 데시벨이를 acheive하기 위해 시스템보기 중 하나를 사용하여 SQL Server 2005 또는 이상을 사용하는 경우 :
select Count(*)
from sys.tables
where [type] = 'U'
SQLServer에 구현 : 오라클에서
USE database_name
SELECT COUNT(*) from information_schema.tables
WHERE table_type = 'base table'
: 개수를 선택 (*) USER_TABLES
에서 나는 나에게 배쉬에서 사용하는 종료 코드를 줄 무언가가 필요했다. 이것은 @ longneck의 탄탄한 대답을 바탕으로합니다. 데이터베이스에 테이블이있는 경우 select
문은 contents
열을 "테이블 있음"으로 설정합니다. Grep는이 경우에 0
을 성공적으로 반환 할 것이며 그렇지 않은 경우 0이 아닌 값을 반환합니다.
#!/bin/bash
user=username
pw=passwd
db=database
mysql -u ${user} -p"${pw}" -D ${db} --execute="SELECT CASE COUNT(*) WHEN '0' THEN 'empty database' ELSE 'has tables' END AS contents FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema = '${db}';" | grep 'has tables'
echo $?
는 MySQL의에서 테이블없이 모든 데이터베이스의 목록을 얻으려면 :
이use information_schema
select schema_name from `schemata` s
left join `tables` t on s.schema_name = t.table_schema
where t.table_name is null
;
건배, 기독교
떠들썩한 파티에서빈 데이터베이스를 모두 가져 오려면 절대적인 방법입니다. 고마워요 @ 크리스티안! –
: 아마도
db_name='my_db'
mysql -s --skip-column-names -e "SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '$db_name'"
, 당신은 어떤 사용자가 정의되지 '의미 테이블 또는 뷰 '가 있어야합니다. –