2014-12-29 34 views
1

我想創建2個表:MySQL表引用更新

表error_ref

err_code - int  - primary key auto increment 
description - varchar - not null 

表錯誤

id   - int  - primary key auto increment 
cs   - varchar - not null 
ip   - varchar - not null 
operator - varchar - 
source  - varchar - 
type  - varchar - 
err_code - int  - not null, references error_ref(err_code) 
description - varchar - THERE IS MY QUESTION 
date_poll - datetime - 

我想右error_ref(介紹)是當err_code被設置爲錯誤(描述)時被複制到錯誤(描述)

我是否應該在每次希望將其複製時發出一個SQL請求,或者是否可以使用一些關鍵屬性使其自身複製?

數據在error_ref表的樣子:

  1. SSH連接失敗
  2. SNMP社區沒有設置
  3. 平安

沒有任何反應,我可以有500+記錄錯誤表,我做了第二張表,以便輕鬆修改我的任何描述。

+1

使用MySQL觸發器... http://dev.mysql.com/doc/refman/5.5/en/ trigger-syntax.html –

+0

您不應該在'error'表中重複描述。在需要時使用'JOIN'從'error_ref'獲取描述。 – Barmar

+0

是的,我知道。最佳做法是使用mysql關係來獲取數據。但這不是我的反應。我已經試圖捍衛這個觀點... –

回答

0

我就必須從某個地方加在我的代碼像這樣的請求:

UPDATE error, error_ref 
SET error.description= error_ref.description 
WHERE error.err_code= error_ref.err_code