MySQL तालिका में मान डालने पर सभी कॉलम के अलग-अलग मान होते हैं - mysql

मैं ब्लॉगिंग साइट पर काम कर रहा हूं लेकिन समस्या हैमुझे सामना करना पड़ रहा है कि, मैं उपयोगकर्ता को ब्लॉग बनाने की इजाजत देना चाहता हूं अगर केवल ईमेल पते का उसका संयोजन, ब्लॉग नाम और ब्लॉग शीर्षक तालिका में किसी भी अन्य पंक्ति से अलग है। उदाहरण के लिए हम इस तालिका पर विचार करें: -

Email                          BlogName                                BlogTitle
[email protected]                Coder"s world                         What is coding?
[email protected]                Sql world                             What is sql?

अब यदि कोई उपयोगकर्ता मान दर्ज करने का प्रयास करता है ("[ईमेल संरक्षित]"," कोडर "वर्ल्ड", "कोडिंग क्या है?") तालिका में फिर से उसे करने की अनुमति नहीं दी जाएगी। लेकिन यदि उपयोगकर्ता ईमेल, ब्लॉगनाम और ब्लॉगटाइटल के विभिन्न संयोजन को सम्मिलित करने का प्रयास करता है तो उसे ऐसा करने की अनुमति होगी।

जैसा कि मैं माइस्क्ल के लिए काफी नया हूं, मुझे नहीं पता कि यह कैसे करना है, इसलिए कृपया मुझे ऐसा करने में मदद करें। मेरी टेबल संरचना: - यहां छवि विवरण दर्ज करें

उत्तर:

उत्तर № 1 के लिए 1

आप तीन कॉलम के संयोजन पर एक अद्वितीय बाधा जोड़ सकते हैं:

ALTER TABLE `blog_table` ADD UNIQUE `unique_index`(`Email`(100), `BlogName`(100), `BlogTitle`(100));

यह करेगा भी किसी भी डुप्लिकेट को हटा दें जो आपकी ब्लॉग तालिका में पहले से मौजूद हो सकता है।

ध्यान दें कि इस बाधा से बचने के लिए तीनों स्तंभों में से प्रत्येक के पहले 100 वर्णों का उपयोग किया जाता है #1071-Specified key was too long त्रुटि।


जवाब के लिए 0 № 2

उन 3 कॉलम अद्वितीय बनाएं।

यहां कई फ़ील्ड समग्र बनाने का एक उदाहरण दिया गया है वैकल्पिक तालिका तालिका अद्वितीय जोड़ें ("field_1", "field_2", "field_3");


जवाब के लिए 0 № 3
IF (SELECT 1 = 1 FROM Table WHERE [email protected] and [email protected] and [email protected]) THEN
BEGIN
#return error message do not insert
END;
ELSE
BEGIN
#insert logic here
END;
END IF;

उपरोक्त कोड का उपयोग करके डालने से पहले तालिका में मिलान रिकॉर्ड मौजूद है या नहीं


संबंधित सवाल
सबसे लोकप्रिय