tutorial - mysql কি




MySQL প্রাথমিক কী সরান (8)

"যদি আপনি প্রাথমিক কীটি পুনরুদ্ধার করেন তবে আপনি নিশ্চিতভাবে এটি আবারও অটোওস্ক্রীমেন্টে ফিরে আসতে পারেন"

"PK সম্পত্তি পুনরুদ্ধার করা" এবং আইডি কলামের "স্বতঃপ্রণোদিত সম্পত্তি পুনরুদ্ধার করা" বাঞ্ছনীয় নয় তার কোন প্রশ্ন নেই।

টেবিলের পূর্বনির্ধারিত সংজ্ঞাতে এটি স্বতঃপ্রণোদিত ছিল বলে মনে করা হয়, আইডি মানটি সরবরাহ না করেই এই টেবিলে প্রবেশ করা কিছু প্রোগ্রাম উপস্থিত রয়েছে (কারণ আইডি কলামটি স্বয়ংক্রিয়ভাবে স্বয়ংসম্পূর্ণ)।

কোন ধরনের প্রোগ্রাম অপারেশন অটোক্রেকমেন্ট সম্পত্তি পুনরুদ্ধার না করে বিরতি হবে।

আমার নিম্নলিখিত টেবিল স্কিমা রয়েছে যা লাইভ ব্যবহারকারী MySQL ডেটাবেসে ব্যবহারকারী_customers অনুমতি দেয়:

mysql> describe user_customer_permission;
+------------------+---------+------+-----+---------+----------------+
| Field            | Type    | Null | Key | Default | Extra          |
+------------------+---------+------+-----+---------+----------------+
| id               | int(11) | NO   | PRI | NULL    | auto_increment |
| user_customer_id | int(11) | NO   | PRI | NULL    |                |
| permission_id    | int(11) | NO   | PRI | NULL    |                |
+------------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

আমি user_customer_id এবং permission_id এর প্রাথমিক কীগুলি সরাতে চাই এবং আইডিটির প্রাথমিক কীটি ধরে রাখতে চাই।

যখন আমি কমান্ড চালাচ্ছি:

alter table user_customer_permission drop primary key;

আমি নিম্নলিখিত ত্রুটি পেতে:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

কিভাবে আমি একটি কলাম এর প্রাথমিক কী ড্রপ করতে পারেন?


আমি একই সমস্যা ছিল এবং আমার টেবিল ভিতরে কিছু মান পাশে। যদিও আমি আমার প্রাথমিক কী পরিবর্তন করেছিলাম

ALTER TABLE user_customer_permission DROP PRIMARY KEY , ADD PRIMARY KEY ( আইডি )

সমস্যা আমার সার্ভার অব্যাহত। আমি টেবিলের ভিতরে নতুন ক্ষেত্র তৈরি করেছি আমি নতুন ক্ষেত্রের মধ্যে মান স্থানান্তরিত করেছি এবং পুরানো মুছে ফেলা হয়েছে, সমস্যা সমাধান হয়েছে !!


এক লাইন:

ALTER TABLE  `user_customer_permission` DROP PRIMARY KEY , ADD PRIMARY KEY (  `id` )

আপনি স্বয়ং-বৃদ্ধি হারান না এবং এটি পুনরায়-যুক্ত করতে হবে যা পার্শ্ব প্রতিক্রিয়া থাকতে পারে।


একটি সূচী ছাড়া, একটি অটোক্রেকমেন্ট কলাম বজায় রাখা খুব ব্যয়বহুল হয়ে ওঠে, তাই MySQL একটি অটোক্রেকমেন্ট কলাম একটি সূচকের বামপন্থী অংশ হতে হবে।

কীটি ড্রপ করার আগে আপনাকে স্বতঃপ্রণোদিত সম্পত্তি অপসারণ করতে হবে:

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
ALTER TABLE user_customer_permission DROP PRIMARY KEY;

মনে রাখবেন আপনার একটি যৌথ PRIMARY KEY যা সমস্ত তিনটি কলাম এবং id কভার করে তা অনন্য বলে নিশ্চিত নয়।

এটি অনন্য হতে হলে, আপনি এটি একটি PRIMARY KEY এবং AUTO_INCREMENT আবার তৈরি করতে পারেন:

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;

কলামে প্রাথমিক কী যোগ করতে।

ALTER TABLE table_name ADD PRIMARY KEY (column_name);

টেবিল থেকে প্রাথমিক কী মুছে ফেলার জন্য

ALTER TABLE table_name DROP PRIMARY KEY;

প্রথম ব্যাকআপ ডাটাবেস। তারপর টেবিলের সাথে যুক্ত কোন বিদেশী কী ড্রপ। বিদেশী কী টেবিল ছিনতাই করুন। বর্তমান টেবিল টান। প্রয়োজনীয় প্রাথমিক কী সরান। স্কিলিওগ বা ওয়ার্কবেনক বা হেডিস্কল বা ডাইবেভার বা ফ্যামমিডমিন ব্যবহার করুন।


যদি আপনার কম্পোজিট প্রাইমারী কী থাকে, তবে এটি পছন্দ করুন - ALTER TABLE table_name DROP PRIMARY KEY,ADD PRIMARY KEY (col_name1, col_name2); প্রাথমিক কী, প্রাথমিক কী ALTER TABLE table_name DROP PRIMARY KEY,ADD PRIMARY KEY (col_name1, col_name2);


ALTER TABLE `user_customer_permission` MODIFY `id` INT;
ALTER TABLE `user_customer_permission` DROP PRIMARY KEY;




mysql-error-1075