控制DataGrip產生INSERT敘述的方法─大寫欄名與移除Schema名
文章介紹了在DataGrip中使用INSERT語句匯出部分資料的方法,包括如何調整設定讓資料表名稱與欄位名稱變大寫,並移除資料庫名稱與Schema名稱。具體步驟包括修改Groovy腳本來實現所需格式的INSERT語句輸出。 2025-10-22 03:14:30 Author: jdev.tw(查看原文) 阅读量:15 收藏

由 · 發表於: · 更新於: | 瀏覽數: 20 / 21

標籤:

當我們需要以 INSERT 敘述匯出部份資料時,可以用查詢來操作,步驟如下:

  1. 在編輯區執行 SELECT 敘述做查詢
  2. 在資料格區域確認右上角的Data Extractors是SQL-Insert-Statements (groovy),若不是此選項的話,可由選單裡選擇變更

gh|700

  1. 在資料格區域選取多筆記錄後按Ctrl+C將對應資料產生成INSERT敘述並複製到系統剪貼簿
  2. 在編輯區或文字編輯器按Ctrl+V貼上剛剛產生的敘述,查看產生的內容是否符合需求

1. 需求

  1. 來源資料庫的定序是不區分大小寫,但目的資料庫是區分大小寫,因此產生的INSERT敘述資料表名稱與欄位名稱皆需要變大寫
  2. INSERT敘述不要帶有資料庫名稱與Schema名

在預設的設定下以上需求皆不符合,因此必須再做額外處理。

2. 名稱(Identifiers)大寫

  1. 大寫識別字的設定:【Settings...】→【Editor】→【Code Style】→【SQL】→因操作的資料庫系統是MS SQL Server,再選擇【MS SQL Server, MS Azure】
  2. 點擊【Case】頁籤,將【Word Case】裡的【Identifiers】改成【To upper】
  3. 可看到最右側的預覽內的資料表名稱與欄名都變成大寫了

gh|700

3. 移除資料庫名稱與Schema名稱

Data Extractors和SQL Generator沒有設定資料庫名稱的選項,但我們可以修改產生 INSERT 敘述的處理腳本:SQL-Insert-Statements.sql.groovy,腳本語言是Groovy。

3.1. 變更前先備份

  1. 點擊資料格區域右上角的Data Extractors選單→最後一項【Go to Scripts Directory】或點擊側邊檔的【File】→【Scratchers and Consoles】→【Extensions】→【Database Tools and SQL】→【data】→【extractors】
  2. 在SQL-Insert-Statements.sql.groovy按右鍵→Copy(Ctrl+C),再按Ctrl+V貼上,存成新的腳本檔

gh|422

[!tip] 預設腳本位置
C:\Users\使用者帳號\AppData\Roaming\JetBrains\DataGrip2025.2\extensions\com.intellij.database\data\extractors\SQL-Insert-Statements.sql.groovy

3.2. 修改腳本內容

開啟要修改的腳本檔後,將輸出資料庫名稱與Schame名稱的程式加上註解:

def record(columns, dataRow) {
    OUT.append(KW_INSERT_INTO)
    if (TABLE == null) OUT.append("MY_TABLE")
    else OUT/*.append(TABLE.getParent().getName()).append(".")*/.append(TABLE.getName())
    OUT.append(" (")

修改後再重新啟動DataGrip,確認Data Extractors選單使用了修改後的 .groovy 腳本檔,再於資料格區域選取記錄再按Ctrl+C,此後 INSERT 敘述已依照修改後的指令操作產生成需要的輸出了。

4. 💡 相關鏈接

✅ 解說文章(繁體中文): https://jdev.tw/blog/8985/
Explanation article(English)
解説記事(日本語)

##

您可能也會有興趣的類似文章

您可能也會喜歡…


文章来源: https://jdev.tw/blog/8985/control-datagrip-generate-insert-statements-uppercase-column-names-remove-schema-name
如有侵权请联系:admin#unsafe.sh