【具體場景實踐】使用存儲過程查數據全流程+自動調度

文章目錄

    • 場景設計
      • 場景描述:公司員工管理系統
      • 需求
    • 1. 創建數據庫和表
    • 2. 插入測試數據
    • 3. 復雜存儲過程
    • 4. 調用存儲過程
    • 5. 結果示例
    • 6. 細節優化
      • 存儲過程總結
    • 7. 自動定期執行存儲過程
      • 7.1 啟用 MySQL 事件調度器
      • 7.2 創建定時任務(每天凌晨 2 點自動執行)
      • 7.3 查看和管理事件
        • 1?? 查看當前所有事件
        • 2?? 修改事件
        • 3?? 禁用/啟用事件
        • 4?? 刪除事件
    • 8. 結果與總結

場景設計

場景描述:公司員工管理系統

公司需要管理員工的晉升和調薪,要求如下:

  1. 員工表 (employees) 記錄員工的基本信息、工資、入職時間、部門等。
  2. 薪資歷史表 (salary_history) 記錄員工的薪資變更情況。
  3. 晉升記錄表 (promotion_history) 記錄員工的晉升情況。

需求

  • 定期評估員工,符合晉升條件的自動晉升并加薪
    • 入職 滿2年當前職位不是最高級 的員工,有50% 概率晉升
    • 晉升后工資增加 15%-25%(隨機)。
    • 晉升失敗但工作滿3年,工資 上漲 10%
  • 所有變更都需記錄在歷史表中
  • 使用動態 SQL 以支持不同部門的不同晉升規則。

1. 創建數據庫和表

CREATE DATABASE IF NOT EXISTS company_db;
USE company_db;-- 部門表
CREATE TABLE departments (dept_id INT AUTO_INCREMENT PRIMARY KEY,dept_name VARCHAR(50) UNIQUE NOT NULL
);-- 員工表
CREATE TABLE employees (emp_id INT AUTO_INCREMENT PRIMARY KEY,emp_name VARCHAR(50) NOT NULL,dept_id INT,position VARCHAR(50),salary DECIMAL(10,2),hire_date DATE,FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);-- 薪資歷史表
CREATE TABLE salary_history (record_id INT AUTO_INCREMENT PRIMARY KEY,emp_id INT,old_salary DECIMAL(10,2),new_salary DECIMAL(10,2),change_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (emp_id) REFERENCES employees(emp_id)
);-- 晉升歷史表
CREATE TABLE promotion_history (record_id INT AUTO_INCREMENT PRIMARY KEY,emp_id INT,old_position VARCHAR(50),new_position VARCHAR(50),promotion_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (emp_id) REFERENCES employees(emp_id

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

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

相關文章

【ubuntu】——wsl中使用windows中的adb

一、引言 在 Windows Subsystem for Linux(WSL)環境下工作時,有時需要使用 Android Debug Bridge(ADB)工具與 Android 設備進行交互。通過特定設置,能夠在 WSL 中便捷地調用 Windows 系統中已安裝的 ADB&a…

Centos離線安裝gcc

文章目錄 Centos離線安裝gcc1. gcc是什么?2. gcc下載地址3. gcc的安裝4. 安裝結果驗證 Centos離線安裝gcc 1. gcc是什么? GCC(GNU Compiler Collection)是 GNU 項目下的開源編譯器套件,主要用于將 C、C 等編程語言的源…

JAVA中的多態性以及它在實際編程中的作用

JAVA中的多態性以及它在實際編程中的作用? 在Java中,多態性是指一個對象可以具有多種形態。它主要體現在兩個方面:編譯時多態和運行時多態。 1.編譯時多態 編譯時多態通過方法重載(Overloading)來實現。方法重載是指…

NetLink內核套接字案例分析

一、基礎知識 Netlink 是 Linux 系統中一種內核與用戶空間通信的高效機制,而 Netlink 消息是這種通信的核心載體。它允許用戶態程序(如網絡配置工具、監控工具)與內核子系統(如網絡協議棧、設備驅動)交換數據&#xff…

批量壓縮與優化 Excel 文檔,減少 Excel 文檔大小

當我們在 Excel 文檔中插入圖片資源的時候,如果我們插入的是原圖,可能會導致 Excel 變得非常的大。這非常不利于我們傳輸或者共享。那么當我們的 Excel 文件非常大的時候,我們就需要對文檔做一些壓縮或者優化的處理。那有沒有什么方法可以實現…

基于深度學習的多模態人臉情緒識別研究與實現(視頻+圖像+語音)

這是一個結合圖像和音頻的情緒識別系統,從架構、數據準備、模型實現、訓練等。包括數據收集、預處理、模型訓練、融合方法、部署優化等全流程。確定完整系統的組成部分:數據收集與處理、模型設計與訓練、多模態融合、系統集成、部署優化、用戶界面等。詳…

保姆級離線TiDB V8+解釋

以前學習的時候還是3版本,如今已經是8版本了 https://cn.pingcap.com/product-community/?_gl1ujh2l9_gcl_auMTI3MTI3NTM3NC4xNzM5MjU3ODE2_gaMTYwNzE2NTI4OC4xNzMzOTA1MjUz_ga_3JVXJ41175MTc0MTk1NTc1OC4xMS4xLjE3NDE5NTU3NjIuNTYuMC41NDk4MTMxNTM._ga_CPG2VW1Y4…

spark實驗2

一.實驗題目 實驗所需要求: centos7虛擬機 pyspark spark python3 hadoop分布式 統計歷屆春晚的節目數目 統計各個類型節目的數量,顯示前10名 統計相聲類節目歷年的數目。 查詢每個演員在春晚上表演節目的數量。 統計每年各類節目的數量&#xff0…

學習文章:Spring Boot 中如何使用 `@Async` 實現異步處理

文章目錄 學習文章:Spring Boot 中如何使用 Async 實現異步處理 一、什么是 Async?優點: 二、Spring Boot 中啟用 Async1. 啟用異步支持2. 配置線程池(可選)3. 使用 Async 注解4. 調用異步方法 三、Async 的進階用法1.…

Manus:成為AI Agent領域的標桿

一、引言 官網:Manus 隨著人工智能技術的飛速發展,AI Agent(智能體)作為人工智能領域的重要分支,正逐漸從概念走向現實,并在各行各業展現出巨大的應用潛力。在眾多AI Agent產品中,Manus以其獨…

Git Fast-forward 合并詳解:原理、場景與最佳實踐

在使用 Git 進行團隊協作時,我們經常需要合并分支。合并方式有很多種,其中 Fast-forward(快速合并) 是一種最簡單且無沖突的合并方式。本文將詳細介紹 Fast-forward 的原理、適用場景、常見問題及最佳實踐。 一、Fast-forward 合并…

命令行重啟Ubuntu軟件

我是用Todesk遠程桌面,如果卡死的時候,只能通過ssh連接命令行。于是,就有了如標題所示的需求。 首先,我們看一下todesk在系統里叫什么名字: systemctl list-unit-files | grep -i todesk看到發現是"todeskd.serv…

算法每日一練 (11)

💢歡迎來到張胤塵的技術站 💥技術如江河,匯聚眾志成。代碼似星辰,照亮行征程。開源精神長,傳承永不忘。攜手共前行,未來更輝煌💥 文章目錄 算法每日一練 (11)全排列題目描述解題思路解題代碼c/c…

《Spring日志整合與注入技術:從入門到精通》

1.Spring與日志框架的整合 1.Spring與日志框架進行整合,日志框架就可以在控制臺中,輸出Spring框架運行過程中的一些重要的信息。 好處:方便了解Spring框架的運行過程,利于程序的調試。 Spring如何整合日志框架 Spring5.x整合log4j…

《SQL性能優化指南:新手如何寫出高效的數據庫查詢

新手程序員如何用三個月成為SQL高手?萬字自學指南帶你彎道超車 在數據為王的時代,掌握SQL已成為職場新人的必修課。你可能不知道,僅用三個月系統學習,一個零基礎的小白就能完成從數據庫萌新到SQL達人的蛻變。去年剛畢業的小王就是…

【Unity】在項目中使用VisualScripting

1. 在packagemanager添加插件 2. 在設置中進行初始化。 Edit > Project Settings > Visual Scripting Initialize Visual Scripting You must select Initialize Visual Scripting the first time you use Visual Scripting in a project. Initialize Visual Scripting …

JConsole 在 Linux 上的使用

JConsole 在 Linux 上的使用指南 1. 啟動 JConsole 遠程監控 Linux 服務器上的 JVM 進程 1.1 修改 JMX 配置&#xff0c;允許遠程訪問 在 Linux 服務器 啟動 Java 應用時&#xff0c;需要加上 -Djava.rmi.server.hostname<服務器IP>&#xff0c;完整的啟動參數如下&am…

個人記錄,Unity資源解壓和管理插件

就是經典的兩個AssetStudio 和 Ripper 沒有什么干貨&#xff0c;就是記錄一下&#xff0c;內容沒有很詳細 AssetStudio 說錯了&#xff0c;AssetStudio比較出名&#xff08;曾經&#xff09;&#xff0c;但好像墮落了 是&#xff0c;AssetBundlExtractor 這個工具有個好處就…

編譯skia

1.準備工具 (1)vs2019,到微軟官方下載下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux (2)ninja,下載地址:Releases ninja-build/ninja GitHub (3)gn,下載地址:https://chrome-infra-packages.appspot.com/p/gn/gn/windows-amd64 (4)skia,下載地址:git …

vue 知識點整理

1.data為什么是一個函數而不是對象 維度對象形式函數形式數據隔離性所有實例共享同一對象&#xff0c;導致數據污染每個實例擁有獨立數據副本復用安全性不適用于可復用組件支持組件安全復用語言機制引用傳遞引發副作用函數返回值實現作用域隔離&#xff08;閉包&#xff09;框…