如何使用臨時表從另一個數據庫更新我的數據庫?
我想每天使用另一個大型數據庫更新我的數據庫表,使用臨時表並且不返回結果。我該如何更新它?
這是我的臨時表:
use data_pro; DROP TABLE IF EXISTS datasll.table1; CREATE TEMPORARY TABLE IF NOT EXISTS datasll.table1 SELECT cs.id, cs.fk_c, cs.so, cs.pr, cs.date, cs.o_p, cs.sh_c, cs.x, LEFT(cs.x,2), cs.doc, cs.fk_op, cc.id_c_c, cc.name, cc.descrip, left(cc.n_o,3) as bon, cc.fk_c_br, cc.de, cc.m_mat, cc.color, cc.fk_c_s FROM data_pro.catas cs LEFT OUTER JOIN data_pro.c_co cc ON data_pro.cs.fk_c_c = data_pro.cc._id_cc WHERE data_pro.cc.pap = 1 AND data_pro.cc.stati = 'b'; Many thanks for any help.
您確實可以使用儲存過程來刷新數據庫中的數據。它只是意味著對適合您的數據的 INSERT 和 UPDATE 進行編碼。
如果您用新數據替換現有數據,您可以使用:
INSERT INTO ... SELECT FROM
… 語法,在刪除現有數據後,從查詢中提取數據並將其插入到現在為空的表中。當然,您可以執行單獨的步驟來更新許多表,一次一個。語法文件在
INSERT INTO ... SELECT FROM
這裡:https ://dev.mysql.com/doc/refman/5.7/en/insert-select.html如果您只想
UPDATE ... SELECT FROM
獲取表中的某些值,則可以在此處遵循不同的範例:https://stackoverflow.com/questions/1262786/mysql-update-query-based-on-select-query
這裡還描述了一般
UPDATE
語法:https ://dev.mysql.com/doc/refman/5.7/en/update.html
如果你要創建一個新的條目,你可以這樣做
插入表名選擇查詢
如果您想根據某些值更新表,但需要通過加入從其他表中獲取值(選擇您提到的查詢),您可以將這些值儲存在臨時表中。然後您可以通過 do 迭代這些值-while 或 Cursor,您可以更新目標表(要更新的表)。
臨時表創建
聲明@TempTableName 表(Column1 數據類型,.. ColumnN dataTyPE)
插入您的評論中提到的@TempTableName 選擇查詢。
迭代表並更新目標表。請參閱 sql 中的游標以迭代臨時表。
如果答案有幫助,請投票。