Excel 更改資料同步更新到Mysql資料庫

2022-07-28 10:15:25 字數 2174 閱讀 5174

剛上班,領導給我提出乙個需求,想要每天更新mysql資料庫中的原有商品訂單狀態,新增新的商品訂單狀態。因為公司目前的資料庫只能新增資料,不能更改資料,想要更改原有的資料,只能將原有的資料清空,再匯入新的資料。從3月12日入職試崗到3月23日,正式想出乙個比較不錯的解決方法,耗時12天。

記錄下思考過程:

首先資料庫-物流狀態表,長這樣:

剛開始的思路:

那就問問我們資料部吧,他們給的方案:先查詢再刪除。語句如下:

查詢所有狀態為」未完成」從訂單號在(所有狀態為」已完成」的訂單號)中的訂單號,刪除這些訂單號的資料where條件為狀態為」未完成」 or 「在途」 ...

select * from 台灣物流狀態 where 訂單號 in (

select 訂單號 from 台灣物流狀態 where 物流狀態="已完成")

and 物流狀態="在途"

先執行查詢語句,核對資訊完整無誤後,將select * 換成delete ,

執行刪除語句,將需要刪除的資料進行刪除。

然而,光查詢語句就用了900多秒,我勒個去,

。優化前:955.344s

select * from 台灣物流狀態 where 訂單號 in (

select 訂單號 from 台灣物流狀態 where 物流狀態="已完成")

and 物流狀態="在途"

第一次優化後,使用字段查詢:393.244s

select `回執單號`,`狀態` from `香港物流狀態` a where exists

(select 回執單號 from `香港物流狀態` where 回執單號=a.`回執單號`)

and 狀態="在途"

使用*號查詢:394.239s

select * from `香港物流狀態` a where exists

(select 回執單號 from `香港物流狀態` where 回執單號=a.`回執單號`)

and 狀態="在途"

然後同事反饋還是慢,改唄。

轉換思路:

後來想使用觸發器,,,,但是沒有相似的例子可以直接應用,大都是通過一張表資料的改變來修改另一張表的資料,所以先將這個思路放一邊。

再換思路:

然而這種方式不能在excel中編輯資料然後儲存在資料庫中,不能滿足需求,故捨棄。

想到我在家使用的是office2010的excel for mysql外掛程式,很簡單的連線資料庫外掛程式,但是公司電腦office版本是2007版本的,試了一下,安裝上外掛程式,但是不顯示下面這個東東:

2010安裝成功,出現上面的mysql for excel外掛程式,然後正常連線資料庫。新!mysql for excel:編輯資料

功能一:

新!excel for mysql 編輯資料:

點選這個 edit mysql data 這個功能,並且要勾上第二個圖 「√」這個選項,就可以在excel中修改資料後自動儲存在資料庫中(修改後的資料在excel中用綠色填充)。

功能二:

追加資料到已存在的表:

點選這個功能,

選擇 automatic的選項,

點選左下角的高階選項:

在最後乙個選項,選中如下圖所示:

之後就是確定了,然後

Mysql使用儲存過程更改資料

記錄一下使用過程,方便以後檢視 此sql注釋已經能夠很好的說明如何進行操作了,因此就不做過多的闡述了。drop procedure ifexists resetdate create procedure resetdate begin 宣告變數,用於接受游標的值 declare id bigint ...

mysql資料庫插入時更改資料

1.ignore欄位 解釋 mysql插入資料時遇到具有相同主鍵或者相同唯一索引的字段就忽略插入。用法 insert ignore into user valus 2.replace欄位 解釋 replace欄位是遇到主鍵或者唯一索引相同的資料就刪除,然後插入要插入的資料,否則直接插入。用法 rep...

MySQL更改資料庫資料儲存目錄

mysql資料庫預設的資料庫檔案位於 var lib mysql下,有時候由於儲存規劃等原因,需要更改mysql資料庫的資料儲存目錄。下文總結整理了實踐過程的操作步驟。1 確認mysql資料庫儲存目錄 enter password datadir var lib mysql 2 關閉mysql服務在...