INSERT বিবৃতি বিদেশী কী বাধা - এসকিউএল সার্ভারের সাথে সাংঘর্ষিক


225

আমি নিম্নলিখিত ত্রুটি পাচ্ছি। দয়া করে আমাকে একটু সাহায্য করবেন?

এমএসজি 547, স্তর 16, রাজ্য 0, লাইন 1
INSERT বিবৃতিটি বিদেশী মূল সীমাবদ্ধতা "এফকে_স_স_আইটেম_স_পি_ আইটেম_গ্যাট" এর সাথে সাংঘর্ষিক। "ডেভ_বো" ডাটাবেস, টেবিল "ডিবিও.সপ_ আইটেম_গিটি" - এ দ্বন্দ্ব দেখা দিয়েছে। বিবৃতিতে বাতিল করা হয়েছে।

কোড:

insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, 
                      status_code, last_modified_user_id, last_modified_timestamp, client_id)   
values (10162425, 10, 'jaiso', '123123',
        'a', '12', '2010-12-12', '1062425')

শেষ কলামটি client_idত্রুটি ঘটায়। আমি dbo.Sup_Item_Catসুপার_টিম অনুসারে কলামটিতে ইতিমধ্যে বিদ্যমান মানটি রাখার চেষ্টা করেছি .. তবে আনন্দ নেই :-(


20
আপনি আপনার আইটেমের টেবিলটিতে এমন একটি রেকর্ড সন্নিবেশ করার চেষ্টা করেছেন যাতে আপনার টেবিলে কোনও মিলের বিভাগের রেকর্ড নেই Sup_Item_Cat। এ সম্পর্কে আর কিছু বলার নেই।
মার্টিন স্মিথ

1
সুতরাং আপনি বলছেন যে SELECT * FROM Sup_Item_Cat WHERE sup_item_cat_id = '123123'ফলাফল ফলাফল?
মার্টিন স্মিথ

2
এছাড়াও আপনি বলেন "শেষ কলম" ক্লায়েন্ট_আইডি "আমি দ্বন্দ্ব পাচ্ছি।" এটি ত্রুটি বার্তাকে বোঝায় যা আমি মনে করি আপনি নিজের সমস্যার জন্য ভুল জায়গায় খুঁজছেন।
মার্টিন স্মিথ

উত্তর:


287

আপনার টেবিলটিতে dbo.Sup_Item_Catএটির অন্য সারণীতে বিদেশী কী উল্লেখ রয়েছে। এফকে যেভাবে কাজ করে তা হ'ল সেই কলামটিতে এর কোনও মান থাকতে পারে না যা রেফারেন্স সারণীর প্রাথমিক কী কলামেও নয়।

আপনার যদি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও থাকে তবে এটি খুলুন এবং sp_help' dbo.Sup_Item_Cat'। কোন কলামটি এফকে চালু রয়েছে এবং কোন টেবিলের কোন কলামটি এটি উল্লেখ করেছে তা দেখুন। আপনি কিছু খারাপ ডেটা tingোকাচ্ছেন।

আপনার আরও কিছু ব্যাখ্যা করার দরকার থাকলে আমাকে জানান!


10
Sp_help কমান্ড অন্তর্ভুক্ত করার জন্য ধন্যবাদ! আমার অনুরূপ সমস্যা সঙ্কুচিত করতে আমাকে সহায়তা করেছে।
গা

প্রকৃতপক্ষে - আমার ক্ষেত্রে, সম্পত্তিটি কেবল নিয়ন্ত্রকের কাছে ভিউ থেকে ফেরত পাঠানো হচ্ছিল না, তাই এটি সর্বদা 0 (যা কোনও বৈধ আইডি ছিল না, তবে নিয়ামকের এটি জানার কোনও উপায় থাকবে না))
নিমিনেম

1
আল্ট + এফ 1 স্পোহেল্পের শর্টকাট, ফিউচার পাঠকদের জন্য, টেবিলটি নির্বাচন করুন এবং Alt + f1 টিপুন
স্যাটসবেলে

133

একটি বিদেশী কী ক্ষেত্র স্থাপনের চেষ্টা করে প্রাপ্ত ত্রুটি বার্তাটি সম্পর্কে, আমার নিজেরই এই সমস্যাটি ছিল। উত্তরটি খুঁজে পাওয়ার প্রত্যাশায় আমি এই পৃষ্ঠায় শেষ করেছি। এই পৃষ্ঠায় চেক করা উত্তরটি সত্যই সঠিক, দুর্ভাগ্যবশত আমি অনুভব করি যে এসকিউএল এর সাথে পরিচিত না লোকেরা উত্তরটি কিছুটা অসম্পূর্ণ। আমি রাইটিং কোডে মোটামুটি পারদর্শী কিন্তু এসকিউএল কোয়েরিগুলি আমার কাছে ডেটাবেস টেবিলগুলি তৈরি করার পাশাপাশি নতুন।

পরীক্ষিত উত্তরটি সঠিক হওয়া সত্ত্বেও:

মাইক এম লিখেছেন-

"এফকে যেভাবে কাজ করে তা হ'ল সেই কলামের কোনও মান থাকতে পারে না যা রেফারেন্স সারণির প্রাথমিক কী কলামেও নয়" "

এই উত্তরটি থেকে যা অনুপস্থিত তা হ'ল সহজভাবে;

আপনাকে প্রথমে প্রাথমিক কী যুক্ত টেবিলটি তৈরি করতে হবে।

এটি বলার আর একটি উপায়;

বিদেশী কীযুক্ত চাইল্ড টেবিলে ডেটা sertোকানোর চেষ্টা করার আগে আপনাকে প্রাইমারি কী সহ প্যারেন্ট টেবিলটিতে ডেটা sertোকাতে হবে।

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

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


আমি যোগ করব, আপনার ক্যোয়ারীটি প্রোফাইল করে দেওয়ার বিষয়টি নিশ্চিত করুন কারণ এটি আপনাকে যা মনে করে তা ডেটাবেসে সর্বদা প্রেরণ করা হয় না।
এইচএলজিইএম

20

আপনি বিদেশী টেবিলের অস্তিত্ব নেই এমন বিদেশী কী কলামে একটি মান সহ একটি রেকর্ড সন্নিবেশ করার চেষ্টা করছেন।

উদাহরণস্বরূপ: আপনার কাছে যদি বই এবং লেখক সারণী থাকে যেখানে লেখকদের টেবিলে বইগুলির একটি বিদেশী কী বাধা রয়েছে এবং আপনি কোনও বইয়ের রেকর্ড সন্নিবেশ করার চেষ্টা করছেন যার জন্য কোনও লেখকের রেকর্ড নেই।


16

আরও স্পষ্টতার জন্য আপনার বিবৃতি পোস্ট করতে হবে। কিন্তু ...

এই ত্রুটির অর্থ হল আপনি যে সারণীতে ডেটা areোকাচ্ছেন তার অন্য টেবিলের সাথে একটি বিদেশী কী সম্পর্ক রয়েছে। ডেটা beোকানোর আগে, বিদেশী কী ক্ষেত্রের মানটি অন্য টেবিলের মধ্যে অবশ্যই উপস্থিত থাকে।


5

সমস্যাটি ক্লায়েন্ট_আইডির সাথে নয় যা আমি দেখতে পাচ্ছি। দেখে মনে হচ্ছে সমস্যাটি চতুর্থ কলামে রয়েছে, সুপার_ইটিম_ক্যাট_আইডি

আমি দৌড়াতে হবে

sp_helpconstraint sup_item

এবং কোন কলামটি আসল সমস্যা তা নিশ্চিত করার জন্য বিদেশী কী এফকে_সপ_আইটেম_সপ_ আইটেম_গেটের কাছে ফিরে আসা সীমাবদ্ধতার_সামগ্রী কলামটিতে মনোযোগ দিন, তবে আমি নিশ্চিত যে আপনি যেটি ঠিক করার চেষ্টা করছেন সেটি নয় I '123123' ছাড়াও সন্দেহজনক দেখাচ্ছে।


5

আমি যা কিছু পেয়েছি তা হ'ল সমস্ত ক্ষেত্রের সাথে হ'ল মিল।

উদাহরণস্বরূপ, 'বিড়াল কুকুর' প্রেরণ 'ক্যাটডগ' প্রেরণের মতো নয়।

আমি এটির সমস্যা সমাধানের জন্য যা করেছি তা হ'ল আমি যে সারণিতে তথ্য সন্নিবেশ করছিলাম সেখান থেকে এফকে কোড লিপিটি বের করা, "বিদেশী কী" যে সীমাবদ্ধতাগুলি ছিল (দ্রষ্টর ক্ষেত্রে আমার ক্ষেত্রে 2 ছিল) নোট করুন এবং নিশ্চিত করুন যে এটি 2 ক্ষেত্রের মানগুলি মিলেছে? ঠিক যেমন তারা টেবিলে ছিল যে এফকে বাধা ত্রুটি ছুড়েছিল।

একবার আমার সমস্যাগুলি দেওয়ার জন্য আমি 2 টি ক্ষেত্র স্থির করেছিলাম, জীবনটি ভাল ছিল!

আপনার যদি আরও ভাল ব্যাখ্যা প্রয়োজন হয় তবে আমাকে জানান।


এটা সত্যিই আমাকে সাহায্য করেছে haha! এই সত্যটিকে উপেক্ষা করে, আমার একটি সমস্যা স্থির করে! আপনাকে ধন্যবাদ
জনাথন ব্রাউন

4

আমার এসকিউএল কোডেও আমি একই ত্রুটি পেয়েছি, এই সমাধানটি আমার পক্ষে কাজ করে,


প্রাথমিক সারণীতে ডেটা পরীক্ষা করুন হতে পারে আপনি কোনও কলামের মান প্রবেশ করছেন যা প্রাথমিক কী কলামে উপস্থিত নেই।


3

এটা বলছেন ঠিক কি মানে। আপনি একটি কলামে এমন একটি মান toোকানোর চেষ্টা করছেন যাতে এফকে সীমাবদ্ধতা রয়েছে যা অনুসন্ধান সারণীর কোনও মানের সাথে মেলে না।


2

সম্পর্কের ক্ষেত্রে দুটি ক্ষেত্রে পরীক্ষা করুন বিদেশী কী এর জন্য সংজ্ঞায়িত করা হয়েছে। আপনি সম্পর্কের সংজ্ঞা দেওয়ার সময় এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে আপনি যে ক্ষেত্রগুলি নির্বাচন করতে চেয়েছিলেন সেগুলি থাকতে পারে না। এটি আমাকে অতীতে পুড়িয়ে দিয়েছে।


2
  1. sp_helpconstraint চালান
  2. সীমাবদ্ধতা_কীজ কলামে ATTENTION অর্থ প্রদান করুন বিদেশী কীটির জন্য ফিরে এসেছে

2

অভিভাবক সারণী ডেটা হারিয়ে যাওয়া সমস্যা সৃষ্টি করে। আপনার সমস্যায় "dbo.Sup_Item_Cat" তে ডেটা উপলব্ধ না হওয়ার কারণে সমস্যা দেখা দেয়


1

এমভিসি 5 অ্যাপ্লিকেশনটির জন্য আমার ডাটাবেস তৈরি করতে কোড-প্রথম স্থানান্তরগুলি ব্যবহার করার সময় আমার একই সমস্যা হয়েছিল। সমস্যাটি সৃষ্টি করার জন্য আমি শেষ পর্যন্ত আমার কনফিগারেশন.সিএস ফাইলটিতে বীজ পদ্ধতিটি পেয়েছি। আমার বীজ পদ্ধতিটি মেলে প্রাথমিক কীটির সাথে এন্ট্রি তৈরি করার আগে বিদেশী কীযুক্ত টেবিলের জন্য একটি টেবিল এন্ট্রি তৈরি করছিল।


1

আমার সন্নিবেশকৃত মান ক্ষেত্রগুলিতে এমন ট্যাব এবং ফাঁকা স্থান রয়েছে যা খালি চোখে স্পষ্ট নয়। আমি এক্সেলে আমার মান তালিকা তৈরি করেছিলাম, এটি অনুলিপি করে এসকিউএল এ আটকিয়েছি এবং আমার এফকে ক্ষেত্রে অ-মিল খুঁজে পেতে অনুসন্ধান চালিয়েছি।

ম্যাচ ক্যোয়ারীগুলি সনাক্ত করতে পারেনি যে আমার এফকে মাঠে ট্যাব এবং ফাঁকা স্থান রয়েছে, তবে INSERT এগুলিকে স্বীকৃতি দেয় এবং এটি ত্রুটিটি উত্পন্ন করতে থাকে।

আমি আবার রেকর্ডে এফকে ক্ষেত্রের সামগ্রীটি অনুলিপি করে এটিকে itোকানোর ক্যোয়ারিতে আটকে দিয়ে আবার পরীক্ষা করেছি। যখন সেই রেকর্ডটিও ব্যর্থ হয়, আমি ডেটার দিকে ঘনিষ্ঠভাবে তাকান এবং অবশেষে ট্যাবগুলি / স্পেসগুলি সনাক্ত করে।

আমি একবার মুছে ফেলা ট্যাব / স্পেসগুলি সাফ করলে আমার সমস্যাটি সমাধান হয়ে গেছে। আশা করি এটি কাউকে সাহায্য করবে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.