क्वेरी की समस्या: केवल एक ऑटो कॉलम हो सकता है


10

क्या कोई मुझे बता सकता है कि इस तालिका की परिभाषा में क्या गलत है।
mysql संस्करण 5.1.52-लॉग है

root@localhost spoolrdb> create table spoolqueue (
                             queue int,
                             idx bigint not null auto_increment,
                             status smallint,
                             querystring varchar(2048),
                             contenttype varchar(255),
                             characterencoding varchar(16),
                             body text,
                             primary key(queue,idx)
                             );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

1
मुझे यह प्रश्न (आपके लिए +1) पसंद है क्योंकि यह एक MySQL गोटा प्रस्तुत करता है जो MyISAM के लिए अद्वितीय है। यह पूछना कि हमेशा हार मानने और फिर से पेश करने से बेहतर क्यों है।
RolandoMySQLDBA

जवाबों:


12

यह स्पष्ट रूप से MyISAM के साथ भंडारण इंजन के रूप में काम करेगा, न कि InnoDB के साथ, यदि आप इसके साथ रह सकते हैं।

एक और तरीका है काम करने के लिए इसे पाने के लिए यदि आप के स्थानों स्वैप है queueऔर idxप्राथमिक कुंजी घोषणा में।


1

idxयदि आप queueपीके में पहली पसंद करना चाहते हैं, तो आप अपनी खुद की कुंजी भी दे सकते हैं । index(idx)लाइन के अलावा पर ध्यान दें :

create temporary table spoolqueue (
    queue int,
    idx bigint not null auto_increment,
    status smallint,
    querystring varchar(2048),
    contenttype varchar(255),
    characterencoding varchar(16),
    body text,
    primary key(queue,idx),
    index(idx)
);

-1

प्राथमिक कुंजी से कतार फ़ील्ड को निकालने का प्रयास करें। आप चाहें तो कतार के कॉलम को इंडेक्स कर सकते हैं


4
उस तरह की मेज के बिंदु को हराया।
निफले

4
क्या आपको पता है कि पूछने वाला बचने की कोशिश कर रहा है?
jcolebrand
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.