PostgreSQL 11 | Alter Table


緒論


作成されたテーブルの内容は、次のとおりです.
  • を追加
    削除
  • カラム名
  • を変更
  • 制約
  • を追加
  • 列タイプ
  • を変更

    デフォルトsql文


    重複する部分が苦手なので、ここには簡単な内容があります.
    DROP DATABASE IF EXISTS test;
    CREATE DATABASE test;
    \c test

    列の追加


    前後にSELECT*FROM storeで検証し、正しく適用されているかを確認できます.
    CREATE TABLE store(
        store_id INTEGER,
        store_name TEXT
    );
    ALTER TABLE store
        ADD COLUMN store_created DATE;

    列の削除

    # 아까 만들어놓은 store 테이블을 그대로 사용
    ALTER TABLE store
        DROP COLUMN store_created;

    列名の変更


    制約の追加と削除


    NOT NULLの追加と削除

    ALTER COLUMN store_created SET NOT NULL;
    ALTER COLUMN store_created DROP NOT NULL;

    PKとFKの追加

    ADD PRIMARY KEY (store_id)
    ALTER TALBE store
        ADD COLUMN store_owner INTEGER;
    ADD FOREIGN KEY store key RFERENCES 부모테이블 (칼럼이름);

    列タイプの変更

    # 1번과 2번은 결과적으로 동일하며 SET DATA 는 생략이 가능하다.
    -- 1번
    ALTER TABLE store
    	ALTER COLUMN store_name SET DATA TYPE VARCHAR(300);
        
    -- 2번
    ALTER TABLE store
    	ALTER COLUMN store_name TYPE VARCHAR(300);
        
    -- 3번 ( '1101' 문자를 1101 숫자로 바꾸기 위해서는 아래를 참고)
    ALTER TALBE store
        ALTER COLUMN store_id TYPE TEXT USING store_id::INTEGER;
        --ATLER COLUMN store_id TYPE TEXT; 의 뒤에 USING 문을 붙여서 사용.