ऐसा करने के 2.5 तरीके हैं (मूल रूप से दो, लेकिन ऐसा लगता है कि तीन हैं):
सबसे आसान से सबसे कठिन...
विकल्प 1:
यदि आपको टेबलबी के मूल्य को प्रतिबिंबित करने के लिए टेबलए की आवश्यकता है, तो टेबलए में मूल्य को बिल्कुल भी स्टोर न करें, बस टेबलबी के मूल्य का उपयोग करें। या तो शामिल हों का उपयोग करें:
select a.*, b.col1
from tableA a
join tableB b on <some join condition>
या एक उप-चयन
select *, (select col1 from tableB where <some condition>) col1
from tableA
विकल्प 2:
यदि आप विकल्प 1 से खुश हैं, तो इसे एक दृश्य में परिवर्तित करें, जो एक तालिका की तरह व्यवहार करता है (जोड़ने वाले दृश्यों को अपडेट करने पर प्रतिबंध हैं):
create view myview as
select ... (one of the above selects)
विकल्प 3:
एक डेटाबेस ट्रिगर बनाएं जो तब सक्रिय होता है जब टेबलबी का मान बदल जाता है और मूल्य को टेबलए में उपयुक्त पंक्ति/स्तंभ पर कॉपी कर देता है
create trigger tableB_update
after update on tableB
for each row
update tableA set
tablea_col = new.col1
where id = new.tableA_id;
ध्यान दें कि new
और old
नई और पुरानी पंक्तियों को दिए गए विशेष नाम हैं ताकि आप अद्यतन की जा रही तालिका के मानों का संदर्भ दे सकें।
वह विकल्प चुनें जो आपकी आवश्यकताओं के लिए सबसे उपयुक्त हो।