2013-08-14 11 views
8

संपादित करने में सक्षम होने से रोक दिया है PHPMyAdmin को अभी मेरे सर्वर व्यवस्थापक द्वारा v4.0.4.2 में अपग्रेड कर दिया गया है।PHPMyAdmin के नए संस्करण ने मुझे डेटा

CREATE TABLE IF NOT EXISTS `product_options` (
    `product_id` int(10) NOT NULL, 
    `option_id` int(10) NOT NULL, 
    KEY `product_id` (`product_id`,`option_id`) 
) 

PHPMyAdmin बस जब मैं तालिका में डेटा ब्राउज़ यह त्रुटि संदेश देता है:

अब मैं निम्न तालिका में पंक्तियों को संपादित करने में असमर्थ हूँ

This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

मुझे नहीं पता इस तालिका में एक अद्वितीय कॉलम चाहते हैं, तो मैं डेटा कैसे संपादित कर सकता हूं? क्या कोई सेटिंग बदल सकती है?

बहुत धन्यवाद

MySQL v5.1.70

संपादित करें/समाधान

मैंने महसूस किया कि यह जरूरी एक नया unique column PHPMyAdmin मुझे चाहने गया था बनाने के लिए नहीं था, लेकिन इसके बजाय एक unique index। इसका मतलब है कि मेरी टेबल की संरचना को बदलने की ज़रूरत नहीं थी - मुझे बस एक अनोखा इंडेक्स जोड़ना पड़ा, जो मुझे वैसे भी करना चाहिए था।

+0

संभावित डुप्लिकेट [समाधान: इस तालिका में एक अद्वितीय कॉलम नहीं है। ग्रिड संपादित करें, चेकबॉक्स, संपादित करें, कॉपी करें और हटाएं विशेषताएं उपलब्ध नहीं हैं] (http: // stackoverflow।कॉम/प्रश्न/18 9 22503/रिज़ॉल्यूशन-यह-टेबल-करता-नहीं-युक्त-एक-अद्वितीय-कॉलम-ग्रिड-एडिट-चेकबॉक्स-एड) –

उत्तर

15

अद्वितीय कुंजी के बिना, दो समान रिकॉर्डों के बीच अंतर करने का कोई तरीका नहीं है जो मौजूद हो सकता है। इसलिए phpMyAdmin सुरक्षित रूप से तालिका को संपादित नहीं कर सकता - आपके पास कोई सुराग नहीं है जिसमें से इनमें से संपादित किया जाएगा। क्या आप वास्तव में इस तालिका में डुप्लिकेट रिकॉर्ड रखना चाहते हैं?

10
तुम सब एक सूचकांक = पिक की तरह प्राथमिक साथ एक बुलाया आईडी की तरह एक अद्वितीय स्तंभ जोड़ने है, या अगर आपके पास है पहले से ही उस आईडी कि संख्या अभी प्राथमिक कर रहे हैं कहा जाता है ऐसा करने के लिए मिल गया

enter image description here

+0

त्रुटि: # 1062 - कुंजी 1 –

+1

@PooyaEstakhri के लिए डुप्लिकेट प्रविष्टि '0' मैंने किया था, पहले टेबल की शुरुआत में एक कॉलम जोड़ें, फिर आईडी को कॉल करने वाली सेटिंग्स को चुनें (लेकिन आप इसे पहले से ही चुन सकते हैं) आप इसे _id या newId कह सकते हैं, अगर आपके पास पहले से ही बहुत सी प्रविष्टियां हैं I_I बॉक्स का चयन करें इसका मतलब ऑटो बढ़ाना है, इसलिए यह आपकी वास्तविक तालिका पर पहले से अंतिम तक आपकी सभी उत्तीर्ण प्रविष्टियों को एक अद्वितीय संख्या दे देगा और यह आपके द्वारा तालिका में दर्ज की गई सभी नई प्रविष्टियों की संख्या जारी रखेगा। वह त्रुटि इसलिए है क्योंकि सभी प्रविष्टियों में 0 मान दे रही है और यह अद्वितीय नहीं है। – zvzej

+0

thx zvzej मैं कोशिश करूंगा :) लोगों की मदद करना जारी रखें;) –

3

आप केवल एक फ़ील्ड जोड़ सकते हैं जिसका नाम "आईडी" है, और A_I विकल्प जांचें।

+0

धन्यवाद! यह मेरे लिए काम किया। – Sobiaholic

+0

बिल्कुल सही, धन्यवाद! – SlickRemix

0

AUTO_INCREMENT विकल्प की जांच करने से पहले, यह जांचें कि VARCHAR के बजाय कॉलम INT है।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/13866135) – ADyson

+0

@ADyson मुझे उत्तर में कोई लिंक नहीं दिख रहा है। – Mike

+0

@ माइक क्षमा करें मैंने समीक्षा में गलत बटन पर क्लिक किया होगा। यद्यपि यह एक पूर्ण-विशेषीकृत उत्तर के बजाए सिर्फ एक टिप्पणी के रूप में झंडा लगाना संभव है। – ADyson

0

मुझे एक समाधान मिला जो भविष्य में किसी की मदद कर सकता है, मेरे पास आईडी के साथ टेबल था, जो प्राथमिक कुंजी नहीं थी और ऑटो वृद्धि नहीं थी, मैंने temp कॉलम जोड़ा, इसे प्राथमिक और ऑटो वृद्धि हुई, फिर मैंने आईडी कॉलम संपादित किया और तो मैंने temp कॉलम हटा दिया, उसके बाद मैंने id को प्राथमिक और ऑटो वृद्धि

0

में एक ही समस्या थी। मेरे अपने मामले में मेरे पास पहले से ही एक आईडी कॉलम था। मैंने कॉलम गिरा दिया और इसे फिर से बनाया; इस बार मैंने इसे प्राथमिक कुंजी बना दिया और A_I (यानी ऑटो-वृद्धि) को चुना। सबकुछ अच्छा रहा।

नोट: आप केवल तभी ऐसा कर सकते हैं जब आपकी आईडी बदलना आपके काम को प्रभावित नहीं करता है।