एक प्रमुख सिर्फ एक सामान्य सूचकांक है MSSQL करने के लिए mysql कन्वर्ट करने के लिए कर सकते हैं। सरलीकरण पर एक तरीका पुस्तकालय में कार्ड कैटलॉग की तरह सोचना है। यह MySQL को सही दिशा में इंगित करता है।
बेहतर खोज गति के लिए एक अनूठी कुंजी का भी उपयोग किया जाता है, लेकिन इसमें बाधा है कि कोई डुप्लिकेट आइटम नहीं हो सकता है (कोई दो x और y नहीं है जहां x y और x == y नहीं है)।
manual इस प्रकार यह बताते हैं:
एक अद्वितीय सूचकांक की कोई समस्या ऐसी है कि सूचकांक में सभी मान अंतर होना चाहिए बनाता है। एक त्रुटि तब होती है जब आप कुंजी मान के साथ कोई नई पंक्ति जोड़ने का प्रयास करते हैं जो मौजूदा पंक्ति से मेल खाता है। यह बाधा बीडीबी स्टोरेज इंजन को छोड़कर को नल मूल्यों पर लागू नहीं करती है। अन्य इंजनों के लिए, यूनिक इंडेक्स कॉलम के लिए एकाधिक NULL मानों को अनुमति देता है जिसमें NULL हो सकता है। यदि आप UNIQUE अनुक्रमणिका में किसी कॉलम के लिए उपसर्ग मान निर्दिष्ट करते हैं, कॉलम मान उपसर्ग के भीतर अद्वितीय होना चाहिए।
प्राथमिक कुंजी एक 'विशेष' अद्वितीय कुंजी है। यह मूल रूप से एक अनूठी कुंजी है, सिवाय इसके कि इसका उपयोग कुछ पहचानने के लिए किया जाता है।
मैनुअल बताता है कि सामान्य रूप से इंडेक्स का उपयोग कैसे किया जाता है: here।
एमएसएसक्यूएल में, अवधारणाएं समान हैं। इंडेक्स, अद्वितीय बाधाएं और प्राथमिक कुंजी हैं।
untested है, लेकिन मेरा मानना है कि MSSQL बराबर है:
CREATE TABLE tmp (
id int NOT NULL PRIMARY KEY IDENTITY,
uid varchar(255) NOT NULL CONSTRAINT uid_unique UNIQUE,
name varchar(255) NOT NULL,
tag int NOT NULL DEFAULT 0,
description varchar(255),
);
CREATE INDEX idx_name ON tmp (name);
CREATE INDEX idx_tag ON tmp (tag);
संपादित करें: कोड के ऊपर सही होने के लिए परीक्षण किया जाता है; हालांकि, मुझे संदेह है कि ऐसा करने के लिए एक बेहतर वाक्यविन्यास है। थोड़ी देर के बाद से मैंने SQL सर्वर का उपयोग किया है, और स्पष्ट रूप से मैं काफी भूल गया हूँ :)।
संबंधित: [? MySQL के प्रमुख कीवर्ड] (http://stackoverflow.com/q/924265/697449) मूल रूप से '' KEY' INDEX' का पर्याय है। –