यहाँ MySQL 5.3.x + DB में एक टेबल है:MySQL: # 1075 - गलत तालिका परिभाषा; autoincrement बनाम एक और कुंजी?
CREATE TABLE members` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`memberid` VARCHAR(30) NOT NULL ,
`Time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`firstname` VARCHAR(50) NULL ,
`lastname` VARCHAR(50) NULL ,
UNIQUE (memberid),
PRIMARY KEY (id)
) ENGINE = MYISAM;
ईद स्तंभ प्रश्नों में इस्तेमाल कभी नहीं किया है, यह सिर्फ दृश्य सुविधा के लिए है (इसलिए यह कैसे तालिका में वृद्धि देखना आसान है)। Memberid, एक वास्तविक कुंजी है अद्वितीय है, और memberid किसी भी सदस्य (जहां memberid = 'abcde') की पहचान करने के प्रश्नों में प्रयोग किया जाता है।
मेरा प्रश्न है: कैसे auto_increment रखने के लिए, लेकिन memberid एक प्राथमिक कुंजी के रूप बनाने के लिए? क्या यह संभव है? जब मैं प्राथमिक कुंजी (memberid) के साथ इस तालिका बनाने के लिए प्रयास करते हैं, मैं एक त्रुटि मिलती है:
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
सबसे अच्छा विकल्प क्या है (उम्मीद है, वहाँ आईडी स्तंभ रखें ताकि प्रदर्शन अच्छा है और एक तरीका है पूछताछ किसी भी उपयोगकर्ता को सदस्य द्वारा पहचानें, आईडी द्वारा नहीं), यदि प्रदर्शन बहुत महत्वपूर्ण है (हालांकि डिस्क स्थान नहीं है)?
+1 और टिप्पणी के लिए धन्यवाद, आज कुछ सीखा :) –