DB 하이브가 이미 존재하는지 확인하는 방법은 무엇입니까?

DB 하이브가 이미 존재하는지 확인하는 방법은 무엇입니까?

Expect 스크립트와 기타 명령을 사용하여 Hive 데이터베이스를 생성합니다.

우리가 만든 하이브 머신에서 Expect 스크립트를 다시 실행하면 다음과 같은 결과를 얻을 수 있습니다.

오류 하이브가 이미 존재합니다.

다음과 같은 경우 어떻게 확인할 수 있나요?데이터베이스 하이브가 생성되었습니다.다시 만들기 전에?

이 검증을 통해 우리는 탈출할 수 있다대본이 기대된다:

# su - postgres
 Last login: Sun Aug 13 11:12:03 UTC 2017 on pts/0
 -bash-4.2$ psql
 psql (9.2.13)
 Type "help" for help.

postgres=# CREATE DATABASE hive;
ERROR:  database "hive" already exists

내 예상 스크립트: (내 bash 스크립트에서)

set timeout -1

#exec the scripts

spawn timeout 60 ssh root@IP
expect "#"
spawn su - postgres
expect "$"
send "psql\n"
expect "=#"
send "CREATE DATABASE hive;\n"
.
.
.
.

다른 예:

postgres=# CREATE DATABASE [IF NOT EXISTS] hive;
ERROR:  syntax error at or near "["
LINE 1: CREATE DATABASE [IF NOT EXISTS] hive;
                    ^

답변1

Hive 데이터베이스를 사용하려면 다음을 시도하십시오.하이브를 직접 사용(아래 참조)

PostgreSQL 답변

스택 오버플로 Q&A존재하지 않는 경우 PostgreSQL의 CREATE DATABASE를 시뮬레이션하시겠습니까?

PostgreSQL 지정에 대한 기본 지원은 없습니다.존재하지 않는 경우(벌집처럼)

언급된 간단한 대답 중 하나는 데이터베이스를 쿼리하고 쿼리가 실패한 경우에만 데이터베이스를 생성하는 것입니다.

psql -U postgres -tc "SELECT 1 FROM pg_database WHERE datname = 'my_db'" | grep -q 1 || psql -U postgres -c "CREATE DATABASE my_db"

하이브 답변:

옵션과 함께 명령을 사용해야 합니다.[없을 경우]:

CREATE DATABASE [IF NOT EXISTS] <database name>

추가 정보

데이터베이스 문 만들기

Create Database는 Hive에서 데이터베이스를 생성하는 데 사용되는 문입니다. Hive의 데이터베이스는 네임스페이스 또는 테이블 모음입니다. 이 문의 구문은 다음과 같습니다.

CREATE DATABASE|SCHEMA [IF NOT EXISTS] <database name>

여기서 IF NOT EXISTS는 동일한 이름의 데이터베이스가 이미 존재함을 사용자에게 알리는 선택적 절입니다. 이 명령에서는 DATABASE 대신 SCHEMA를 사용할 수 있습니다. 다음 쿼리를 실행하여 userdb라는 데이터베이스를 생성합니다.

hive> CREATE DATABASE [IF NOT EXISTS] userdb;

또는

hive> CREATE SCHEMA userdb;

관련 정보