pgsql模板是什么?

查找所有的數據庫

select datname from pg_database

運行該命令后,我們會發現其中出現了一些其它的數據庫

在這里插入圖片描述

接下來,我們分析 template0template1 的作用。


template1

template1 是 PostgreSQL 默認用于創建新數據庫的模板。當執行 CREATE DATABASE new_db; 時,PostgreSQL 實際上會復制 template1 的內容來創建 new_db

這意味著:

  • 你可以修改 template1:如果你在 template1 中添加了表、函數、擴展或其他對象,那么之后所有基于 template1 創建的新數據庫都會包含這些對象。這對于在所有新數據庫中預裝一些常用結構或擴展非常有用。
  • 需要小心修改:雖然可以修改 template1,但修改后,所有新數據庫都會繼承這些修改。如果你只想某個數據庫有特定對象,最好在創建該數據庫后再添加,而不是修改 template1

template0

template0 也是一個模板數據庫,但它有一個關鍵特性:它被設計成一個 “純凈”的模板

這意味著:

  • 不能修改 template0:你不能直接在 template0 中添加、刪除或修改對象。

  • 用于恢復或特定編碼template0 的主要用途是當 template1 被修改后,如果你需要創建一個完全沒有任何自定義對象的新數據庫時,可以使用 template0。例如,當你需要創建使用不同字符集編碼的數據庫時,通常會基于 template0 來創建,以確保編碼的一致性。
    你可以通過以下方式基于 template0 創建數據庫:

    CREATE DATABASE my_clean_db TEMPLATE template0;
    

簡而言之,template1 是你常用的模板,可以自定義;而 template0 是一個干凈的、不可修改的模板,用于特定情況,比如創建純凈的數據庫或者處理字符集問題。


創建更多自定義的模板

  1. 創建一個普通的數據庫: 首先,你需要創建一個常規的數據庫。
CREATE DATABASE my_custom_template;
  1. 配置你的新數據庫: 連接到這個新創建的數據庫 (my_custom_template),并向其中添加所有你希望在新數據庫中自動包含的對象。這包括:

    • 表結構(CREATE TABLE
    • 視圖(CREATE VIEW
    • 函數和存儲過程(CREATE FUNCTION
    • 擴展(CREATE EXTENSION), 例如 uuid-ossppg_trgm 等。
    • 預設數據(INSERT INTO
    • 權限設置(GRANT
-- 添加一個擴展
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";-- 創建一個表
CREATE TABLE users (id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,email VARCHAR(100) NOT NULL
);-- 插入一些初始數據
INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com');
  1. 將數據庫標記為模板: 完成配置后,斷開與該數據庫的所有連接。然后,你需要修改其屬性,將其標記為一個模板。這個操作需要超級用戶權限,并且不能在連接到該數據庫時執行。
update pg_database set datistemplate = true where datname = 'my_custom_template';
  1. 根據模板創建數據庫
create database mydb template my_custom_template

注意:
只有超級用戶才能將數據庫標記為模板。

斷開連接: 在將數據庫標記為模板(ALTER DATABASE ... IS TEMPLATE TRUE;)之前,必須確保沒有其他會話連接到該數據庫。否則,操作會失敗。

模板的修改: 理論上,你可以修改一個已經被標記為模板的數據庫。但是,當你修改它時,所有當前連接到它的會話也必須被斷開。最佳實踐是,如果你需要更新模板,可以先將它設置為 IS TEMPLATE FALSE,進行修改,然后再設置為 IS TEMPLATE TRUE

  1. 查看有哪些template
SELECT datname
FROM pg_database
WHERE datistemplate = TRUE;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LLM 不知道答案,但是知道去調用工具獲取答案?

思考: LLM 自己“不知道”某個事實性問題的答案,但仍然能“知道”去調用工具獲取正確答案,這聽起來確實有點像個悖論該內容觸及了大型語言模型(LLM)的核心局限性以及(Agents)的智能所在。實際上…

2025年7月11日學習筆記一周歸納——模式識別與機器學習

2025年7月11日學習筆記&一周歸納——模式識別與機器學習一.一周工作二.我的一些筆記匯總三.發現的一些新的學習資料和愛用好物1.百度網盤AI筆記:2.b站資料:3.聽說的一些好書:一.一周工作 本周學習了清華大學張學工汪小我老師的模式識別與…

LeetCode 138題解 | 隨機鏈表的復制

隨機鏈表的復制一、題目鏈接二、題目三、分析四、代碼一、題目鏈接 138.隨機鏈表的復制 二、題目 三、分析 數據結構初階階段,為了控制隨機指針,我們將拷貝結點鏈接在原節點的后面解決,后面拷貝節點還得解下來鏈接,非常麻煩。這…

【計算機存儲架構】分布式存儲架構

引言:數據洪流時代的存儲革命“數據是新時代的石油” —— 但傳統存儲正成為制約數據價值釋放的瓶頸核心矛盾:全球數據量爆炸增長:IDC預測2025年全球數據量將達175ZB(1ZB10億TB)傳統存儲瓶頸:單機IOPS上限僅…

【Linux-云原生-筆記】數據庫操作基礎

一、什么是數據庫?數據庫就是一個有組織、可高效訪問、管理和更新的電子化信息(數據)集合庫。簡單來說,數據庫就是一個高級的Excel二、安裝數據庫并初始化1、安裝數據庫(MySQL)dnf search一下mysql數據庫的…

HarmonyOS中各種動畫的使用介紹

鴻蒙(HarmonyOS)提供了豐富的動畫能力,涵蓋屬性動畫、顯式動畫、轉場動畫、幀動畫等多種類型,適用于不同場景的交互需求。以下是鴻蒙中各類動畫的詳細解析及使用示例:1. 屬性動畫(Property Animation&#…

CSP-S 模擬賽 10

T1 洛谷 U490727 返鄉 思路 首先要意識到一個問題,就是如果所有人總分一定,那么是不會出現偏序的。 可以感性理解一下,就是對于 i,ji, ji,j, 若 ai≤aj,bi≤bja_i \leq a_j, b_i \leq b_jai?≤aj?,bi?≤bj?,那么…

CMD,PowerShell、Linux/MAC設置環境變量

以下是 CMD(Windows)、PowerShell(Windows)、Linux/Mac 在 臨時/永久 環境變量操作上的對比表格:環境變量操作對照表(CMD vs PowerShell vs Linux/Mac)操作CMD(Windows)P…

MySQL(131)如何解決MySQL CPU使用率過高問題?

解決MySQL CPU使用率過高的問題需要從多個方面進行排查和優化,包括查詢優化、索引優化、配置優化和硬件資源的合理使用等。以下是詳細的解決方案和相應的代碼示例。 一、查詢優化 1. 檢查慢查詢 使用MySQL的慢查詢日志來找到執行時間長的查詢。 SET GLOBAL slow_que…

docker基礎與常用命令

目錄 一.docker概述 1.docker與虛擬機區別 2.Linux 六大命名空間 3.Docker 的核心技術及概念 二.docker部署安裝 三.docker常用命令 1.搜索鏡像 2.獲取鏡像 3.查看鏡像信息 4.添加鏡像標簽 5.刪除鏡像 6.存出與載入鏡像 7.上傳鏡像 8.創建容器 9.查看容器狀態 1…

Cypress與多語言后端集成指南

Cypress 簡介 基于 JavaScript 的前端測試工具,可以對瀏覽器中運行的任何內容進行快速、簡單、可靠的測試Cypress 是自集成的,提供了一套完整的端到端測試,無須借助其他外部工具,安裝后即可快速地創建、編寫、運行測試用例,且對每一步操作都支持回看不同于其他只能測試 UI…

計算機畢業設計ssm基于JavaScript的餐廳點餐系統 SSM+Vue智慧餐廳在線點餐管理平臺 JavaWeb前后端分離式餐飲點餐與桌臺調度系統

計算機畢業設計ssm基于JavaScript的餐廳點餐系統0xig8788(配套有源碼 程序 mysql數據庫 論文) 本套源碼可以在文本聯xi,先看具體系統功能演示視頻領取,可分享源碼參考。掃碼點單、手機支付、后廚實時出票已經成為食客對餐廳的基本預期。傳統的…

wedo稻草人-----第32節(免費分享圖紙)

夸克網盤:https://pan.quark.cn/s/ce4943156861 高清圖紙源文件,需要的請自取

Jmeter函數的使用

函數名作用用法${__Random(,,)}${__RandomString(,,)}隨機生成一些東西${__Random(000,999,)} ${__Random(${test1},${test2},)}${__RandomString(${__Random(3,9,)},asdfghjkl,)}${__time(,)}獲取當前的時間戳,也可以定義格式${__CSVRead(,)}讀取CSV文件的格式&…

Windows 用戶賬戶控制(UAC)繞過漏洞

漏洞原理CVE-2021-31199 是一個 Windows 用戶賬戶控制(UAC)繞過漏洞,CVSS 3.1 評分 7.8(高危)。其核心原理如下:UAC 機制缺陷:Windows UAC 通過限制應用程序權限提升系統安全性,但某…

comfyUI-controlNet-線稿軟邊緣

{WebUI&comfyUI}∈Stable Diffuision,所以兩者關于ContrlNet的使用方法的核心思路不會變,變的只是comfyUI能夠讓用戶更直觀地看到,并且控制生圖的局部過程。 之前的webUI中涉及到ContrlNet部分知識:SD-細節控制-CSDN博客 概…

SOEM build on ubuntu

1.配置 soem2.編譯 soem3.結果4.記錄一下自己的開發環境家里臺式機

STM32--USART串口通信的應用(第一節串口通信的概念)

咱們今天呢給大家講解咱們 stm32 開發當中的串口的應用啊 , 串口這個專題呢啊是我們那 個學習上必須要掌握的一個外設串口有什么作用呢,其實在我們以后的這個開發程序當中,咱們可能經常需要用到一些調試 信息,對吧? 啊…

STM32F407ZGT6天氣時鐘+實時溫濕度顯示(附源碼)

文章目錄實現功能:項目展示:代碼解析:實現功能: 1.主要功能:通過485通信獲取傳感器溫濕度,溫濕度數據顯示、實時時鐘顯示與用戶交互。使用LVGL在顯示屏上展示傳感器溫濕度數據,并提供UI設置溫度…

和鯨社區深度學習基礎訓練營2025年關卡4

使用 pytorch 構建一個簡單的卷積神經網絡(CNN)模型,完成對 CIFAR-10 數據集的圖像分類任務。 直接使用 CNN 進行分類的模型性能。 提示: 數據集:CIFAR-10 網絡結構:可以使用 2-3 層卷積層,ReLU…