我一直在閱讀更多關於MySQL中的意見(不是我的強項),但我現在想知道是否有人有一個例子,如何將一行插入到由多個表組成的視圖中,超類型和子類型的關係?是否可以在包含多個表的常見自動增量主鍵的視圖中插入「行」?
例如,政黨模式「的層次結構,顯示僱主的角色和工作人員:
party
_ _ | _ _
| |
employer staff
爲其表(簡體):
party employer staff
-------------------------------- --------------------- -----------------
party_ID INT auto_increment (PK) party_ID INT (FK) party_ID INT (FK)
party_name VARCHAR tax_reference VARHCAR job_title VARCHAR
etc... etc... etc...
我知道我可以創建一個視圖只處理相關關係:
CREATE VIEW staff_view AS SELECT party.party_ID, etc... FROM party INNER JOIN staff
當我添加一個員工的成員,我想創建一個記錄在派對錶中,然後在職員表中引用自動增量party_ID
。我看不到如何在一個語句執行插入,像:
INSERT INTO staff_view (party_name, job_title, etc...) VALUES ('John Doe', 'CEO', etc)
我知道我可以編程達致這,但我希望有一種方法可以直接在數據庫中做到這一點,並保持引用完整性。你將如何處理這個問題?
(MySQL文檔:http://dev.mysql.com/doc/refman/5.1/en/view-updatability.html)
除非您只指定1個源表中的字段,否則無法插入多表視圖。我能想到的只用一個查詢來完成插入操作的唯一方法就是編寫一個存儲過程。 –
@Sam,你有沒有例子說明你如何使用存儲過程來做到這一點? – boatingcow