जेनरेटेड कॉलम MySQL संस्करण के लिए एक अच्छा तरीका है जो 5.7.6 और ऊपर है।
जेनरेट किए गए कॉलम दो प्रकार के होते हैं:
- वर्चुअल (डिफ़ॉल्ट) - कॉलम की गणना फ्लाई पर की जाएगी जब एकॉर्ड को तालिका से पढ़ा जाता है
- संग्रहीत - कॉलम की गणना तब की जाएगी जब तालिका में नया रिकॉर्ड लिखा/अपडेट किया जाएगा
दोनों प्रकारों में NOT NULL प्रतिबंध हो सकते हैं, लेकिन केवल एक संग्रहित जेनरेटेड कॉलम ही एक इंडेक्स का हिस्सा हो सकता है।
वर्तमान मामले के लिए, हम संग्रहित जेनरेट किए गए कॉलम का उपयोग करने जा रहे हैं। लागू करने के लिए मैंने माना है कि गणना के लिए आवश्यक दोनों मान तालिका में मौजूद हैं
CREATE TABLE order_details (price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity));
INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);
राशि स्वचालित रूप से तालिका में पॉप अप हो जाएगी और आप इसे सीधे एक्सेस कर सकते हैं, कृपया ध्यान दें कि जब भी आप किसी भी कॉलम को अपडेट करेंगे, तो राशि भी अपडेट हो जाएगी।