मैं बिल्कुल यह समाधान कर लिया है, बस एक बार देख ले ..
सबसे पहले आप एक नमूना तालिका जहां स्तंभ project_id
को छोड़कर अपने मूल तालिका के कॉलम को ही होगा लेना है।
तो पहले मूल तालिका में एक पंक्ति डालें जहां कॉलम project_id
= 0 का मान और अन्य कॉलम शून्य हैं, बस इस तरह मैन्युअल रूप से पहली पंक्ति डालें।
फिर नमूना तालिका पर निम्न जैसे ट्रिगर बनाएं ...
//////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////
डिलीमीटर ;;
ट्रिगर टी try
प्रत्येक पंक्ति के लिए
पर डालने के बाद
शुरू
घोषित वी पूर्णांक बनाएँ;
सी int घोषित करें;
सेट v = (original
से अधिकतम (project_id
) का चयन करें);
अगर (v = 0) तो
डालने original
सेट में
project_id
= concat ((concat का चयन करें (सही (substring_index ((चयन * से (curdate() try
सीमा 1) के रूप में से चयन ए), '-', '1'), 2), दाएं (substring_index ((से चुनें * (try
सीमा 1 से curdate() का चयन करें), '-', '2'), 2) से try
सीमा 1), '- 001'),
project
= नया। project
;
बाकी
सेट c = (सही का चयन करें ((original
से अधिकतम (project_id
)) एक्स के रूप में, 3) सीमा 1 original
से चयन);
डालने में original
सेट
project_id
= concat ((concat का चयन करें (सही (substring_index ((चयन * से (एक के रूप में try
सीमा 1) से curdate() का चयन करें), '-', '1') , 2), दाएं (substring_index ((से चुनें * (try
सीमा 1 से curdate() का चयन करें), '-', '2'), 2)) try
सीमा 1), concat ('- 00' , सी + 1)),
project
= नया। project
;
original
सीमा 1 से हटाएं;
अंत यदि;
अंत ;;
//////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////
ऊपर ट्रिगर मेरी नमूना तालिका था try
(project
पाठ) और मूल तालिका था original
(project_id
पाठ, project
में पाठ)।
नमूना तालिका पर इस तरह एक ट्रिगर बनाने के बाद, नमूना तालिका में पंक्तियों को सम्मिलित करना शुरू करें, पंक्तियां स्वचालित रूप से project_id
कॉलम जैसे ऑटो_इनक्रिकमेंट मानों के साथ मूल तालिका में डाली जाएंगी जैसे .1405-001,1405-002, 1405-003 .... 14
2014
और 05
May
है और बाकी ऑटो_इनक्रिकमेंटेड मान हैं जो ट्रिगर का उपयोग करके बढ़ रहे हैं।
बस उपरोक्त चरणों का पालन करें, आपकी समस्या निश्चित रूप से हल हो जाएगी।
संग्रहीत प्रक्रिया, या प्रर्लिंग भाषा जैसे पर्ल, जावा या सी # में सम्मिलित करें। कम से कम, आपको 1) अधिकतम (Project_id) का चयन करना होगा, 2) निर्धारित करें कि यह वही है या एक अलग महीना/वर्ष है, 3) वर्ष और महीना कोड प्राप्त करें, 4) इंडेक्स की गणना करें (-001, - 002, आदि) और 5) परिणामी Project_id मान (इस रिकॉर्ड के साथ जाने वाले शेष फ़ील्ड के साथ) डालें। IMHO ... – paulsm4
हां, इसकी अनुमति देने के लिए MySQL में कोई अंतर्निर्मित तंत्र नहीं है। अगली 'Project_ID' प्राप्त करने के लिए @ paulsm4 – Minesh
संग्रहीत फ़ंक्शन का पालन करें। – SparKot