form एक MySQL तालिका में प्राथमिक कुंजी कैसे जोड़ें?



mysql free download for windows 7 (6)

मैंने यही कोशिश की लेकिन यह विफल हो गया:

alter table goods add column `id` int(10) unsigned primary AUTO_INCREMENT;

क्या किसी के पास टिप है?

https://ffff65535.com


मौजूदा कॉलम

यदि आप किसी मौजूदा कॉलम में प्राथमिक कुंजी बाधा जोड़ना चाहते हैं तो पहले सूचीबद्ध सिंटैक्स में से सभी असफल हो जाएंगे।

मौजूदा कॉलम में प्राथमिक कुंजी बाधा जोड़ने के लिए फॉर्म का उपयोग करें:

ALTER TABLE `goods`
MODIFY COLUMN `id` INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT;

इसे इस्तेमाल करे,

alter table goods add column `id` int(10) unsigned primary key auto_increment

ठीक से काम करने के लिए उद्धरण निकालें ...

तालिका वस्तुओं को बदलने के लिए कॉलम आईडी int (10) असाइन किए गए प्राथमिक कुंजी ऑटोऑक्शनमेंट जोड़ें;


यदि आपकी तालिका काफी बड़ी है तो कथन का उपयोग न करें:

alter table goods add column `id` int(10) unsigned primary KEY AUTO_INCREMENT;

क्योंकि यह एक अस्थायी तालिका में सभी डेटा की एक प्रति बनाता है, तालिका बदलता है और फिर इसे वापस कॉपी करता है। इसे मैन्युअल रूप से बेहतर करें। अपनी तालिका का नाम बदलें:

rename table goods to goods_old;

प्राथमिक कुंजी और सभी आवश्यक अनुक्रमणिका के साथ नई तालिका बनाएं:

create table goods (
    id  int(10) unsigned not null AUTO_INCREMENT
    ... other columns ...
    primary key (id)
);

पुरानी तालिका से सभी डेटा को प्रतिलिपि बनाने के लिए नई, अक्षम कुंजी और अनुक्रमणिका को स्थानांतरित करें:

- MyISAM टेबल के लिए इसका इस्तेमाल करें:

SET UNIQUE_CHECKS=0;
    ALTER TABLE goods DISABLE KEYS;
        INSERT INTO goods (... your column names ...) SELECT ... your column names FROM goods_old; 
    ALTER TABLE goods ENABLE KEYS;
SET UNIQUE_CHECKS=1;

या

- MyISAM टैबलेट के लिए इसका इस्तेमाल करें:

SET AUTOCOMMIT = 0; SET UNIQUE_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
    INSERT INTO goods (... your column names ...) SELECT ... your column names FROM goods_old; 
SET FOREIGN_KEY_CHECKS=1; SET UNIQUE_CHECKS=1; COMMIT; SET AUTOCOMMIT = 1;

~ 200 मिलीयन पंक्तियों के साथ एक तालिका में पीके जोड़ने के लिए 2 000 सेकंड लगते हैं।


यह सुनिश्चित नहीं है कि यह किसी और के लिए मायने रखता है, लेकिन मैं डेटाबेस में पहले कॉलम में आईडी तालिका पसंद करता हूं। इसके लिए वाक्यविन्यास है:

ALTER TABLE your_db.your_table ADD COLUMN `id` int(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT FIRST;

जो पहले जवाब पर थोड़ा सा सुधार है। यदि आप चाहते थे कि यह एक अलग स्थिति में हो, तो

ALTER TABLE unique_address ADD COLUMN `id` int(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT AFTER some_other_column;

एचटीएच, -एफटी


ALTER TABLE GOODS MODIFY ID INT(10) NOT NULL PRIMARY KEY;




mysql