>데이터 베이스 >MySQL 튜토리얼 >중복 테이블 오류 없이 PostgreSQL 테이블을 안전하게 생성하려면 어떻게 해야 합니까?

중복 테이블 오류 없이 PostgreSQL 테이블을 안전하게 생성하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-02 19:57:40258검색

How Can I Safely Create PostgreSQL Tables Without Duplicate Table Errors?

PostgreSQL: "CREATE TABLE IF NOT EXISTS"를 사용하여 테이블 생성 처리

PostgreSQL에서 "CREATE TABLE IF NOT EXISTS" 사용 중복 테이블 생성 위험 없이 테이블 생성이 가능합니다. 이 기능은 PostgreSQL 9.1에 도입되었으며 수동으로 테이블 존재 여부를 확인할 필요 없이 테이블 존재 여부를 확인하는 방식으로 테이블을 쉽게 생성할 수 있게 해줍니다.

PostgreSQL 9.1 이상 버전의 구문

PostgreSQL 9.1 이상 버전에서 "CREATE TABLE IF NOT EXISTS"를 사용하여 테이블을 생성하려면 다음을 지정하면 됩니다.

CREATE TABLE IF NOT EXISTS myschema.mytable (
  i integer
);

참고: "myschema" 및 "mytable"을 원하는 스키마 및 테이블 이름으로 바꾸십시오.

이전 버전에 대한 해결 방법 버전

PostgreSQL 9.1 이전 버전의 경우 해결 기능을 사용할 수 있습니다. 유사한 기능을 달성하기 위해. 다음 함수를 만듭니다.

CREATE OR REPLACE FUNCTION create_mytable()
  RETURNS void
  LANGUAGE plpgsql AS
$func$
BEGIN
   IF EXISTS (SELECT FROM pg_catalog.pg_tables 
              WHERE  schemaname = 'myschema'
              AND    tablename  = 'mytable') THEN
      RAISE NOTICE 'Table myschema.mytable already exists.';
   ELSE
      CREATE TABLE myschema.mytable (i integer);
   END IF;
END
$func$;

필요에 따라 함수를 호출합니다.

SELECT create_mytable();

참고:

  • "schemaname" 열 "pg_tables"의 "및"tablename"은 대소문자를 구분합니다.
  • "pg_tables"에는 관련 개체가 아닌 실제 테이블만 포함됩니다.
  • 함수를 실행하는 역할에 테이블 생성 권한이 없는 경우 "SECURITY DEFINER" 사용을 고려하세요.

위 내용은 중복 테이블 오류 없이 PostgreSQL 테이블을 안전하게 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.