台灣最大程式設計社群網站
線上人數
1162
 
會員總數:243471
討論主題:188184
歡迎您免費加入會員
討論區列表 >> MySQL >> 不同的資料庫同步資料表
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
不同的資料庫同步資料表
價值 : 50 QP  點閱數:269 回應數:8

樓主

培根
門外漢
0 36
719 123
發送站內信

各位高手好!
我有研究出資料表在同一個資料庫,如何一起更新

那我要怎麼讓3個以上的資料表同步呢?
雖然我可以給他2次指令 但我可以直接寫在裡面嗎? 我做的是有錯誤的!

第二如果資料表在別的料庫那該怎麼辦呢??
例如text1的text1 和text2的text2

我的資料表的資料都是一樣的
`Name` , `user` , `ID` <-key



搜尋相關Tags的文章: [ 不同的資料庫同步資料表 ] ,
本篇文章發表於2018-07-13 13:22
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

培根
檢舉此回應
我想要為我的程式碼加上 "LIMIT 1;"
但是卻出現錯誤

本篇文章回覆於2018-07-13 14:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
第一,你研究出的兩張表同步其實是錯的
無論你指定第一張表的哪筆資料去同步第二張表,都只會同步到第二張表的第一筆資料

第二,兩張表同步還可以理解是一張修改成另一張,三張表同步是要怎麼同步?

第三,跨資料庫可以用`資料庫`.`資料表`的方式指定,要注意的是如果是PHP之類的程式使用時,不能指定資料庫

第四,LIMIT是用在SELECT上的
本篇文章回覆於2018-07-16 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

培根
檢舉此回應
迷路大大好!,感謝您的回復!
關於第一點,我已經有事過多組合,所已經解決了問題,一會同步一,二會同步二

第二點,我是想說,我用A資料表為主,則BC跟A是同步的,因為可能資料庫後面會有DEFG等等....,但使用者能修改的就只有A資料表而已

第三點,其實我是有想過我可把textbox裡面的東西存到Dim變數,慢慢給MYSQL就好,但我覺得這不是個好方法,所以我在想能不能用MYSQL的指令就好,畢竟給伺服器跑因該會比較快吧?因該

第四點,如果LIMIT不能用的話,有沒有其他的可以使用呢?,抱歉因為我對MYSQL的指令沒有熟悉,都是靠上網查為主,但我知道LIMIT對於程式的優化滿重要的!,不知道有沒有甚麼語法可以替代?

再次感謝您的回覆!!
本篇文章回覆於2018-07-16 22:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
第一點,除非你試的SQL跟貼出來的不同,不然我測試的結果是不會對應
只要仔細看一下SQL就會知道,你根本就沒有告訴資料庫兩張表之間的關係
也沒給出第二張表的指定範圍,所以資料庫只會撈第一筆資料來使用

第二點,我完全無法理解這種操作的原因,但是如果想達成這樣的需求
請把等式拆成兩個來寫,像這樣
`text2`.`Name` = `text1`.`Name`,`text3`.`Name` = `text1`.`Name`

第三點,確實,資料庫的處理速度比普通程式來的快
但是如果情況太複雜時,SQL可能會先把你繞到亂掉
這時適度將工作放到程式端處理會簡單不少,至於該如何拿捏分寸就要憑經驗了

第四點,UPDATE時你應該要給定明確的範圍,在WHERE的條件中

本篇文章回覆於2018-07-17 09:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
上面的大大大約說完了。我補充幾個重點就好。

1.所謂的同步,你需要有一個唯一性的依附性值才行,就如迷路所說的,你的sql語法看不到所謂的同步唯一
所以不太明白你所謂的同步是什麼。

2.伺服器跑因該比較快吧???這個論點其實不完全對。因該是說,你想的點有些偏差。
對於網頁程式而言,有分後端(背景)式跟前端運用式的說法。
無論是後端還是前端,其運行的速度都是差不了多少的。差別在於體感的程度。
所以一般在下sql命令中取資料,視情況有時並不一定在全用sql語法就會比較快。
還是得看情況利用一下後端應用程式處理。

3.limit對優化很重要???這你是從哪聽到的啊??
limit並非是優化要用的。它只是限定要輸出的筆數多少而已。
而且,這也不可能用在update的命令上。
本篇文章回覆於2018-07-17 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

培根
檢舉此回應
您好!~ 浩瀚星空

1.
我確實是用其他SQL的指令,抱歉,我沒有回覆的時候沒有想到要貼出來


2.
我會想要做同步,主要是因為這是商品資訊,而您範例的程式碼,我有想到過


我會想要用limit 主要也是因為以下網址!
https://coolshell.cn/articles/1846.html

我覺得他說得很對,但可能因為我資料庫小,所以根本感覺不出來,但如果我有上萬筆可能就有感覺了!,我不可能因為要改一筆資料去檢查所有資料
所以我才想要加limit,但很遺憾的,它不能加,如果是一行的話可以,如下:

所以沒有替代方案的話,我的程式碼可能就會演變成


不知道對於這方面大大們的想法如何?
本篇文章回覆於2018-07-17 13:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
你還是沒說為啥需要同步,所以我就跳過不理了
LIMIT 是用來輕量化SELECT結果的,我搜尋出10000筆資料,用LIMIT將其中10筆傳回
因為我只要用10筆,如果傳回10000筆是沒必要的消耗
再者,UPDATE是要嚴格指定目標的
如果資料庫中有10000筆符合條件的資料,就應該10000筆都變更
如果你只想變更1筆,那你應該給出更嚴格的條件
從你的回答來看,我覺得你似乎對於SQL的基礎都沒弄懂
或許你該先弄懂SELECT、UPDATE、INSERT、DELETE,然後再弄懂JOIN
到時你應該就能自己得到答案
本篇文章回覆於2018-07-17 18:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

培根
檢舉此回應
我可能表達不夠清楚吧
的確我SQL沒有說有懂,我都是有問題在網路上查,所以沒有買書
我會考慮買本書,到時候因該就懂了!
本篇文章回覆於2018-07-17 19:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.