這個插件可以直接嵌入到 Intellij IDEA、WebStorm 或 PyCharm 開發環境裡,讓你可以直接在裡面做 CodeGym 課程的題目。比如說,你可以寫解題的 code、送出檢查、跟「預設解」比對,還有很多其他功能。你在插件裡解題的進度會跟你在 CodeGym 帳號同步,所以網站跟開發環境裡看到的進度都一樣。
你可以直接在 Jetbrains marketplace 裡下載 CodeGym 插件,就在你的開發環境裡。下面我們會用 WebStorm 當例子來示範步驟,不過其他 IDE 也是一樣的流程。
要用這個插件,你需要 Jetbrains IDE 2023.1 或更新的版本。
進到「設定」區,Windows/Linux
File - Settings,MacOSWebStorm - Preferences。如果沒有設定區,就開一個專案或新建一個。在跳出來的視窗左邊選單選 Plugins,然後點 Marketplace 分頁。在搜尋框輸入 codegym
![]()
- 選擇插件然後點 Install 按鈕。
- 重啟 (Restart IDE) WebStorm,就可以開始用插件了。
插件安裝好了!
登入帳號跟載入題目
- 你會看到介面有點變,還有一個按鈕。登入帳號 在上方橫向工具列。
點下去會跳出一個登入你帳號的視窗,要輸入你的密鑰:
提醒一下,你可以在 設定 → 安全性與登入 找到你的密鑰。
要開新題目,點左邊直向工具列的
Tasks,然後在左側面板點題目的卡片,再點 開啟:
- 當你打開新題目時,會看到一個工作區,裡面有幾個重要檔案:
Solution— 這是你主要要寫 code 的檔案。你要在這裡寫 SQL 查詢來解題。init.sql— 這是用來準備你本地資料庫的輔助腳本。裡面有建立需要的資料表和塞資料的指令。- 題目條件的分頁。
- 跟
Solution檔案一樣,跟網站上一樣。你要寫解答然後按檢查/Validate按鈕
本地執行解答
- 首先你要在本地資料庫建立題目的資料表和資料。打開
init.sql檔案,右鍵點它然後選Run 'init.sql'。
- 在跳出來的 "Edit Configuration" 視窗裡,你要指定腳本要在哪裡執行。在 "Target data source / schema" 區塊點
+,選你設定好的連線,然後選要用的 schema (比如university)。選好後按 Run。
- 執行成功後,底下 console 會出現對應訊息。要看新建的資料表,去 "Database" 面板(有兩個箭頭的按鈕)刷新一下。你應該會在 schema 裡看到新資料表(比如
products)。
- 現在資料庫準備好了,回到
solution.sql檔案。寫你的 SQL 查詢。要本地測試,選擇你要的 schema(在編輯器上方下拉選單),然後按綠色的 "Run" 按鈕。你的查詢會在本地資料庫執行,結果會顯示出來。![]()
重新執行 init.sql 或解決相依性問題
在處理任務時,您會經常執行 init.sql 指令碼來準備您的本機資料庫。但是,如果當資料表已經建立後,您第二次執行它會發生什麼事?
在這些指令碼中常見的 DROP TABLE IF EXISTS employees; 指令,似乎應該透過在建立新資料表之前刪除舊資料表來解決這個問題。然而,情況並非總是如此。您可能會遇到一個錯誤,導致無法刪除資料表。這種情況發生在有其他資料庫物件參考您的資料表時,例如來自其他資料表的外部索引鍵 (Foreign Keys) 或用於自動遞增欄位的序列 (sequences)。系統會保護這些關聯,防止刪除「父」資料表。
CASCADE 選項
對於這種情況,PostgreSQL 為 DROP 指令提供了一個擴充功能——CASCADE 選項。它告訴伺服器:「刪除此資料表,並自動刪除所有依賴於它的物件」。這允許您「強制」清除所有與要刪除的資料表相關的內容。
程式碼範例
-- 如果 employees 資料表被參考,這個版本可能會導致錯誤
DROP TABLE IF EXISTS employees;
-- 用於教學指令碼的選項
-- 這將刪除 employees 資料表及其所有相依物件(索引鍵、序列)。
-- IF EXISTS 可防止在資料表不存在時發生錯誤。
DROP TABLE IF EXISTS employees CASCADE;
-- 在此之後,您可以安全地重新建立資料表
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... 其他欄位
);
重要!在教學目的和本機開發中,當您需要頻繁地重新建立資料庫結構時,CASCADE 是您最好的幫手。然而,在實際的生產資料庫中,應極其謹慎地使用此指令,因為它可能導致無意中刪除重要的相關資料和物件。
題目同步:網站 ↔ 插件
題目清單跟狀態會自動更新,每五分鐘一次,或是你送出任何題目去檢查(CodeGym 伺服器)。
所以如果你在網站上解完題,插件裡也會顯示在已解題清單。如果你想馬上更新題目狀態,點右上角你的頭像,在下拉選單選 同步題目:
插件的新手模式
這是給沒什麼 WebStorm 或其他開發環境經驗的用戶用的簡化版。有些 WebStorm 功能會被隱藏。要關掉這個模式,點右上角你的頭像,在下拉選單選「設定」:
怎麼在 PRO 模式隱藏插件的導覽面板
點設定 (⚙️) 然後把「顯示插件導覽面板」的勾勾拿掉:



GO TO FULL VERSION