Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या दूसरी तालिका प्रविष्टि से गतिशील रूप से एक MySQL तालिका प्रविष्टि मान का संदर्भ देना संभव है?

ऐसा करने के 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 नई और पुरानी पंक्तियों को दिए गए विशेष नाम हैं ताकि आप अद्यतन की जा रही तालिका के मानों का संदर्भ दे सकें।

वह विकल्प चुनें जो आपकी आवश्यकताओं के लिए सबसे उपयुक्त हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एन्क्रिप्टेड फ़ील्ड का मान अद्वितीय बनाना

  2. भंडार में पहचान चर के माध्यम से इकाई का चयन नहीं कर सकता

  3. Google मानचित्र के साथ जियोकोड सीमा से बचने के वैकल्पिक तरीके

  4. MySQL किसी अन्य चयन के अंदर चयन करें?

  5. वर्चर (40) को डेटाटाइम कॉलम में बदलें