-- マリーナ


-- トリガーの削除
DROP TRIGGER IF EXISTS marinas_updated_at ON marinas;


-- テーブルの削除
DROP TABLE IF EXISTS marinas CASCADE;


-- テーブル作成
CREATE TABLE marinas (
    id SERIAL PRIMARY KEY, -- 主キー
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 作成日時
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 更新日時
    last_updater VARCHAR(255),           -- 最終更新者
    marina_name VARCHAR(255) NOT NULL -- マリーナ名
);

--関数の作成（update_timestamp）
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$ 
BEGIN
    NEW.updated_at = CURRENT_TIMESTAMP;  -- 更新日時を現在時刻に設定
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;


-- トリガーの作成（updated_at の自動更新）
CREATE TRIGGER marinas_updated_at
BEFORE UPDATE ON marinas
FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();


-- 初期データ挿入
INSERT INTO marinas (
    marina_name
) VALUES
('ヴェラシス'),
('佐島マリーナ'),
('仁尾マリーナ'),
('新居浜マリーナ'),
('マリーナ真鶴'),
('ハウステンボスマリーナ'),
('三河みとマリーナ'),
('旧マリーナ東海'),
('大洗マリーナ')
;