任務1 將單表中的單個rfid增加為多個rfid

方案 使用連表查詢解決 單獨創建一個rfid的表 讓tool_id對應多個rfid

需要優化的表 ? 1:tool_materials_stock ? ? ? 庫存管理 ? ? ? ? 已完成 數據遷移完成 原庫rfid字段未刪除

? ? ? ? ? ? ? 2:tool_borrow_return ? ? ? ? 借出借還管理 ? ? 已完成

? ? ? ? ? ? ? 3:tool_materials_inspection ?質檢管理 ? ? ? ? 已完成

? ? ? ? ? ? ? 4:tool_materials_maintain ? ?維修信息 ? ? ? ? 已完成 ?

? ? ? ? ? ? ? 5:tool_materials_scrap ? ? ? 報廢管理 ? ? ? ? 已完成

? ? ? ? ? ? ? 6: ? ? ? ? ? ? ? ? ? ? ? ? ? 到期提醒 ? ? ? ? 已完成



?

-- 連表查詢的 tool_materials_stock_rfid 表

CREATE TABLE `tool_materials_stock_rfid` (

? `id` int NOT NULL AUTO_INCREMENT COMMENT 'RFID記錄ID',

? `tool_id` int NOT NULL COMMENT '工具ID(外鍵)',

? `rfid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '工具RFID',

? PRIMARY KEY (`id`) USING BTREE,

? CONSTRAINT `fk_tool_id` FOREIGN KEY (`tool_id`) REFERENCES `tool_materials_stock` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工具庫存RFID關聯表';


?

-- 連表查詢后的原tool_materials_stock 表

-- 1. 首先修改原表結構(移除rfid字段)

CREATE TABLE `tool_materials_stock` (

? `id` int NOT NULL AUTO_INCREMENT COMMENT '工具id',

? `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '工具名稱',

? `maintenance_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '維護狀態(zc:正常 dzj:待質檢 ?zjz:質檢中 ?wxz:維修中)',

? `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '狀態(zk:在庫 jy:借用 ybf:報廢)',

? `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '工具編碼',

? -- 移除 rfid 字段,因為已經遷移到關聯表

? `classification_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '工具分類id',

? `classification_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '工具分類編碼',

? `classification_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '工具分類名稱',

? `warehouse_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '倉庫id',

? `warehouse_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '倉庫編碼',

? `warehouse_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '倉庫名稱',

? `new_inspection_time` datetime DEFAULT NULL COMMENT '最新質檢時間',

? `next_inspection_time` datetime DEFAULT NULL COMMENT '下次質檢時間',

? `expected_return_time` datetime DEFAULT NULL COMMENT '預計歸還時間',

? `new_renew_time` datetime DEFAULT NULL COMMENT '最新更新時間(借出/歸還時間)',

? `update_time` datetime DEFAULT NULL COMMENT '修改時間',

? `update_user_id` int DEFAULT NULL COMMENT '修改人',

? `create_time` datetime DEFAULT NULL COMMENT '創建時間',

? `create_user_id` int DEFAULT NULL COMMENT '創建人',

? `attribute1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段1',

? `attribute2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段2',

? `attribute3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段3',

? `attribute4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段4',

? `attribute5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段5',

? `attribute6` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段6',

? `attribute7` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段7',

? `attribute8` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段8',

? `attribute9` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段9',

? `attribute10` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拓展字段10',

? `belong_group` int DEFAULT NULL COMMENT '集團ID',

? `business_company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '業務公司',

? PRIMARY KEY (`id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=437 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工具庫存表';




?

-- 測試數據集

-- 1. 先查看主表的結構,確保我們插入必要的字段

DESC tool_materials_stock;

-- 2. 插入主表數據(添加rfid字段)

INSERT INTO tool_materials_stock

(name, status, maintenance_status, code, rfid, classification_id, classification_code,

warehouse_id, warehouse_code, belong_group, create_time, update_time)

VALUES

('測試工具1', 'normal', 'normal', 'TOOL001', 'TEMP001', '1', 'CL001', '1', 'WH001', 1, NOW(), NOW()),

('測試工具2', 'normal', 'normal', 'TOOL002', 'TEMP002', '1', 'CL001', '1', 'WH001', 1, NOW(), NOW());

-- 3. 獲取插入的ID

SELECT id, name FROM tool_materials_stock WHERE code IN ('TOOL001', 'TOOL002');

-- 4. 使用查詢到的實際ID插入RFID關聯表數據

INSERT INTO tool_materials_stock_rfid

(tool_id, rfid)

VALUES

(437, 'RFID001'),

(437, 'RFID002'),

(438, 'RFID003');

-- 5. 驗證查詢

SELECT

? ? tmew.id,

? ? tmew.name,

? ? tmew.code,

? ? GROUP_CONCAT(tmsr.rfid) as rfid

FROM tool_materials_stock as tmew

LEFT JOIN tool_materials_stock_rfid tmsr ON tmew.id = tmsr.tool_id

WHERE tmew.belong_group = 1

GROUP BY tmew.id, tmew.name, tmew.code;




?

-- 原表中的rfid加載到新表中

-- 1. 首先將原表中的rfid數據遷移到新表

INSERT INTO tool_materials_stock_rfid (tool_id, rfid)

SELECT id, rfid

FROM tool_materials_stock

WHERE rfid IS NOT NULL

AND rfid != ''

AND rfid NOT IN (

? ? -- 防止重復插入已存在的RFID

? ? SELECT rfid FROM tool_materials_stock_rfid

);

-- 2. 驗證數據遷移是否成功

SELECT

? ? t.id,

? ? t.name,

? ? t.code,

? ? t.rfid as old_rfid,

? ? GROUP_CONCAT(r.rfid) as new_rfid

FROM tool_materials_stock t

LEFT JOIN tool_materials_stock_rfid r ON t.id = r.tool_id

WHERE t.rfid IS NOT NULL

AND t.rfid != ''

GROUP BY t.id, t.name, t.code, t.rfid;

-- 3. 確認數據無誤后,可以刪除原表的rfid字段

-- ALTER TABLE tool_materials_stock DROP COLUMN rfid;


?

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

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

相關文章

OutSystems Platform Tools Platform Services

概述(Overview) outsystems是一整套低代碼的企業級應用(WEB 和 移動端)的開發環境。 本文主要講解outsystems的Platform Tools與Platform Services 平臺工具(Platform Tools) 集成開發環境IDE&#xff0…

【深度解析】ETERM指令:離港系統的核心技術

在民航離港系統中,ETERM(中航信終端模擬系統)是廣泛使用的指令操作系統,主要用于航班控制、旅客值機、登機等操作。以下是一些核心的ETERM指令及其功能分類: 1. 航班信息查詢與操作 FLR:顯示航班列表&…

ES的java操作

ES的java操作 一、添加依賴 在pom文件中添加依賴包 <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!-- elastic…

DeepSeek 從入門到精通學習指南,2025清華大學《DeepSeek從入門到精通》正式發布104頁pdf版超全解析

DeepSeek 是一款強大的 AI 搜索引擎&#xff0c;廣泛應用于企業級數據檢索和分析。無論您是初學者還是有經驗的用戶&#xff0c;掌握 DeepSeek 的使用都能為您的工作帶來極大的便利。本文將從入門到精通&#xff0c;詳細介紹如何學習和使用 DeepSeek。 鏈接: https://pan.baid…

飛書專欄-TEE文檔

CSDN學院課程連接&#xff1a;https://edu.csdn.net/course/detail/39573

2025.2.11——一、[極客大挑戰 2019]PHP wakeup繞過|備份文件|代碼審計

題目來源&#xff1a;BUUCTF [極客大挑戰 2019]PHP 目錄 一、打開靶機&#xff0c;整理信息 二、解題思路 step 1&#xff1a;目錄掃描、爆破 step 2&#xff1a;代碼審計 1.index.php 2.class.php 3.flag.php step 3&#xff1a;繞過__wakeup重置 ?編輯 三、小結…

AI大模型(DeepSeek)科研應用、論文寫作、數據分析與AI繪圖學習

【介紹】 在人工智能浪潮中&#xff0c;2024年12月中國公司研發的 DeepSeek 橫空出世以驚艷全球的姿態&#xff0c;成為 AI領域不可忽視的力量!DeepSeek 完全開源&#xff0c;可本地部署&#xff0c;無使用限制&#xff0c;保護用戶隱私。其次&#xff0c;其性能強大&#xff…

考研操作系統----操作系統的概念定義功能和目標(僅僅作為王道嗶站課程講義作用)

目錄 操作系統的概念定義功能和目標 操作系統的四個特征 操作系統的分類 ?編輯 操作系統的運行機制 系統調用 操作系統體系結構 操作系統引導 虛擬機 操作系統的概念定義功能和目標 什么是操作系統&#xff1a; 操作系統是指控制和管理整個計算機系統的軟硬件資源&…

DeepSeek 突然來襲,AI 大模型變革的危機與轉機藏在哪?

隨著人工智能技術的飛速發展&#xff0c;大模型領域不斷涌現出具有創新性的成果。DeepSeek 的橫空出世&#xff0c;為 AI 大模型領域帶來了新的變革浪潮。本文將深入探討 DeepSeek 出現后 AI 大模型面臨的危機與轉機。 沖沖沖&#xff01;&#xff01;&#xff01; 目錄 一、…

JVM的類加載器

什么是類加載器&#xff1f; 類加載器&#xff1a;JVM只會運行二進制文件&#xff0c;類加載器的作用就是將字節碼文件加載到JVM中&#xff0c;從而Java 程序能夠啟動起來。 類加載器有哪些&#xff1f; 啟動類加載器(BootStrap ClassLoader):加載JAVA HOME/jre/lib目錄下的庫…

web前端開發中vscode常用的快捷鍵

1.快速復制一行 快捷鍵&#xff1a; shiftalt 下箭頭(上箭頭) 或者 ctrlc 然后 ctrlv 2.選定多個相同的單詞 快捷鍵&#xff1a; ctrl d 先雙擊選定一個單詞&#xff0c;然后按下 ctrl d 可以往下依次選擇相同的單詞。 這樣同時修改相同的單詞 3.全局替換某單詞 當我們一個…

C與C++的區別,類型轉換,引用

1.從C到C 語言的區別 C語言 編譯性語言 面向過程語言靈活 移植性好 效率高shell 解釋性語言 面向過程語言Linux運維C 編譯性語言 面向對象面向對象語言效率最高的 應用領域&#xff1a;系統開發(APP開發&#xff0c;服務器開發)&#xff0c;引擎開發&#xff0c;游戲開發&…

SQL-leetcode—1581. 進店卻未進行過交易的顧客

1581. 進店卻未進行過交易的顧客 表&#xff1a;Visits -------------------- | Column Name | Type | -------------------- | visit_id | int | | customer_id | int | -------------------- visit_id 是該表中具有唯一值的列。 該表包含有關光臨過購物中心的顧客的信息。 …

Jenkins 部署 之 Mac 一

Jenkins 部署 之 Mac 一 一.Jenkins 部署依賴 JDK 環境 查看 Mac JDK 環境&#xff0c;如果沒有安裝&#xff0c;先安裝 打開終端輸入命令:java -version Mac安裝配置 JDK 二. 檢查 HomeBrew 安裝 檢查 HomeBrew 是否安裝&#xff0c;終端輸入命令:brew -v Mac安裝HomeB…

鴻蒙HarmonyOS NEXT開發:優化用戶界面性能——組件復用(@Reusable裝飾器)

文章目錄 一、概述二、原理介紹三、使用規則四、復用類型詳解1、標準型2、有限變化型2.1、類型1和類型2布局不同&#xff0c;業務邏輯不同2.2、類型1和類型2布局不同&#xff0c;但是很多業務邏輯公用 3、組合型4、全局型5、嵌套型 一、概述 組件復用是優化用戶界面性能&#…

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow構建私有知識庫

文章目錄 DeepSeek介紹公司背景核心技術產品與服務應用場景優勢與特點訪問與體驗各個DeepSeek-R系列模型的硬件需求和適用場景 Ollama主要特點優勢應用場景安裝和使用配置環境變量總結 安裝open-webui下載和安裝docker desktop配置鏡像源安裝open-webui運行和使用 RagFlow介紹主…

更加通用的Hexo多端部署原理及實現,適用于各種系統之間

本文推薦在作者的個人博客網站閱讀&#xff1a;shenying.online 一、故事背景 故事發生在大學上學期間&#xff08;而不是寒假&#xff09;。上學期間&#xff0c;宿舍條件極其惡劣&#xff0c;半夜斷電、空間狹小。我們大學垃圾條件使用游戲本的種種弊端被無限放大&#xff1…

開源、免費項目管理工具比較:2025最新整理30款

好用的開源、免費版項目管理系統有&#xff1a;1.Redmine&#xff1b;2. Taiga&#xff1b;3. OpenProject&#xff1b; 4.ProjectLibre&#xff1b; 5.GanttProject&#xff1b; 6.Tuleap&#xff1b; 7.Trac&#xff1b;8. Phabricator&#xff1b; 9.Notion&#xff1b; 10.…

組織結構改革:激活企業活力的 “源頭活水”

難以適應市場變化、內部溝通與協作不暢、決策效率低下、運營成本增加、人才流失嚴重、員工士氣下降、戰略目標難以實現……企業如何根據市場環境變化和自身發展需求&#xff0c;靈活調整組織框架&#xff0c;賦能企業的持續健康發展&#xff1f; 某國有投資建設集團旗下的二級…

oracle中decode怎么轉換成pg

對于 PostgreSQL 中的 Oracle DECODE 函數&#xff0c;可以使用 CASE 表達式或聯合。CASE 表達式根據條件返回第一個匹配的結果&#xff0c;語法為&#xff1a;CASE WHEN 條件 THEN 結果 ELSE 結果 END。聯合通過 UNION ALL 操作符組合多個 SELECT 語句&#xff0c;返回一個包含…