এটি আমি চেষ্টা করেছিলাম কিন্তু এটি ব্যর্থ হয়:
alter table goods add column `id` int(10) unsigned primary AUTO_INCREMENT;
কারও কাছে টিপস আছে?
এটি আমি চেষ্টা করেছিলাম কিন্তু এটি ব্যর্থ হয়:
alter table goods add column `id` int(10) unsigned primary AUTO_INCREMENT;
কারও কাছে টিপস আছে?
উত্তর:
কলামটি যুক্ত করার পরে, আপনি সর্বদা প্রাথমিক কী যুক্ত করতে পারেন:
ALTER TABLE goods ADD PRIMARY KEY(id)
আপনার স্ক্রিপ্টটি কেন কাজ করছে না, আপনাকে PRIMARY KEYকেবল শব্দটি নয়, নির্দিষ্ট করতে হবে PRIMARY:
alter table goods add column `id` int(10) unsigned primary KEY AUTO_INCREMENT;
FIRSTপরে রাখব AUTO_INCREMENTযার অর্থ idইতিমধ্যে বিদ্যমান সারণীর প্রথম কলাম হবে। অন্যথায় এটি এখন যেমন লেখা আছে সারণীর শেষের দিকে রাখা হবে, যা সহজ করার সময় কিছুটা বিভ্রান্ত হতে পারেSELECT * ...
আপনি যদি বিদ্যমান কলামে প্রাথমিক কী বাধা যুক্ত করতে চান তবে পূর্ববর্তী তালিকাভুক্ত সমস্ত সিনট্যাক্স ব্যর্থ হবে।
বিদ্যমান কলামে একটি প্রাথমিক কী বাধা যুক্ত করতে ফর্মটি ব্যবহার করুন:
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;
কারণ এটি অস্থায়ী সারণীতে সমস্ত ডেটার একটি অনুলিপি তৈরি করে, সারণী পরিবর্তন করে এবং তারপরে এটি অনুলিপি করে। ম্যানুয়ালি এটি করা ভাল। আপনার টেবিলটির নতুন নাম দিন:
rename table goods to goods_old;
প্রাথমিক কী এবং সমস্ত প্রয়োজনীয় সূচী সহ নতুন টেবিল তৈরি করুন:
create table goods (
id int(10) unsigned not null AUTO_INCREMENT
... other columns ...
primary key (id)
);
পুরানো টেবিল থেকে সমস্ত তথ্য নতুনতে সরান, অনুলিপি কী এবং সূচি অনুলিপি করার জন্য:
- মাইসাম টেবিলগুলির জন্য এটি ব্যবহার করুন :
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;
- এটি ইনোডিবি ট্যাবলেটের জন্য ব্যবহার করুন :
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`
ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);
ALTER TABLE GOODS MODIFY ID INT(10) NOT NULL PRIMARY KEY;
এটা চেষ্টা কর,
alter table goods add column `id` int(10) unsigned primary key auto_increment
আমার জন্য, প্রস্তাবগুলির কোনওটিই আমাকে সিনট্যাক্সের ত্রুটিগুলি প্রদানে কাজ করেনি, তাই আমি কেবল phpmyadmin (সংস্করণ 4.9.2), (10.4.10-মারিয়াডিবি) ব্যবহার করে এবং idস্বয়ংক্রিয় বর্ধিত প্রাথমিক কী সহ কলাম যুক্ত করেছি । Idপ্রথম উপাদান থেকে কলামটি সুন্দরভাবে যুক্ত করা হয়েছিল।
অনুসন্ধান আউটপুট ছিল:
টেবিলের মধ্যে প্রথমে table_nameনূতন স্বয়ংক্রিয় idক্রিমেন্ট না যোগ করুন, প্রাথমিক কী ( id) যুক্ত করুন;
সঠিকভাবে কাজ করতে উদ্ধৃতিগুলি সরান ...
alter table goods add column id int(10) unsigned primary KEY AUTO_INCREMENT;