মাইএসকিউএল ওয়ার্কবেঞ্চ থেকে বিদেশী কী তৈরি করতে ত্রুটি


9

আমি মাইএসকিউএল ওয়ার্কব্যাঞ্চ থেকে আমার ডাটাবেসে স্কিমা পরিবর্তনগুলি সিঙ্ক্রোনাইজ করার চেষ্টা করছি। বিদেশী কী তৈরি করার চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি:

Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)

এখানে যে বিবৃতিটি কার্যকর করার চেষ্টা করা হচ্ছে তা এখানে:

ALTER TABLE `tomato`.`ing_allergy_ingredient` 
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

এই ত্রুটিটির অর্থ কি কোনও ধারণা?

উত্তর:


11

আপনি ইতিমধ্যে অন্য কোথাও ব্যবহৃত নামের সাথে সীমাবদ্ধতা যুক্ত করার চেষ্টা করলে আপনি এই বার্তাটি পাবেন।

এই পোস্ট অনুসারে আপনি এইভাবে আপনার প্রতিবন্ধকতা পরীক্ষা করতে পারেন:

আপনি যে টেবিলটি তৈরি করতে চাইছেন তাতে যদি কোনও বিদেশী কী বাধা অন্তর্ভুক্ত থাকে এবং আপনি এই সীমাবদ্ধতার জন্য নিজের নামটি সরবরাহ করেছেন তবে মনে রাখবেন এটি অবশ্যই ডাটাবেসের মধ্যে স্বতন্ত্র হওয়া উচিত। এই নামটি কোথাও ব্যবহার হচ্ছে কিনা তা দেখতে এই ক্যোয়ারীটি চালান:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;

এই ক্যোয়ারীতে বিদেশী কীটি প্রদর্শিত হয়নি, তবে আমি যখন টেবিলটির দিকে তাকালাম সেখানে একই নামের সাথে একটি সূচক ছিল। আমি বিশ্বাস করি যে এটি মাইএসকিউএল ওয়ার্কবেঞ্চে সিঙ্ক্রোনাইজেশন সহ একটি ত্রুটি। আমি সর্বশেষতম সংস্করণ (5.2.31) ডাউনলোড করেছি এবং সমস্যাটি চলে গেছে।
বেনভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.