বিদ্যমান থাকলে একটি MySQL টেবিল বা আপডেট করুন




insert-update (7)

আমি একটি ডাটাবেস টেবিলে একটি সারি যুক্ত করতে চাই, তবে একই সারির সাথে একটি সারি উপস্থিত থাকলে আমি সারি আপডেট করতে চাই।

উদাহরণ স্বরূপ,

insert into table (id, name, age) values(1, "A", 19)

চলুন অনন্য কী id , এবং আমার ডাটাবেসে id = 1 সহ একটি সারি আছে। যে ক্ষেত্রে আমি এই মান সঙ্গে যে সারি আপডেট করতে চান। সাধারণত এই একটি ত্রুটি দেয়। আমি insert IGNORE ব্যবহার insert IGNORE এটি ত্রুটি উপেক্ষা করবে, তবে এটি এখনও আপডেট হবে না।


SQLite ব্যবহার করার সময়:

REPLACE into table (id, name, age) values(1, "A", 19)

তবে id প্রাথমিক কী। অথবা অন্যথায় এটি অন্য সারি ঢোকা। INSERT (SQLite) দেখুন।


আমার ক্ষেত্রে আমি নীচের প্রশ্নগুলি তৈরি করেছি কিন্তু প্রথম প্রশ্নের মধ্যে যদি id 1 ইতিমধ্যে বিদ্যমান থাকে এবং বয়স ইতিমধ্যেই থাকে, তারপরে যদি আপনি age চেয়ে age ছাড়া প্রথম প্রশ্নটি তৈরি করেন তবে কিছুই হবে না

REPLACE into table SET `id` = 1, `name` = 'A', `age` = 19

উপরের সমস্যা এড়াতে নীচের মত প্রশ্ন তৈরি করুন

INSERT INTO table SET `id` = '1', `name` = 'A', `age` = 19 ON DUPLICATE KEY UPDATE `id` = "1", `name` = "A",`age` = 19

এটা আপনাকে সাহায্য করবে ...


এটা চেষ্টা কর:

INSERT INTO table (id,name,age) VALUES('1','Mohammad','21') ON DUPLICATE KEY UPDATE name='Mohammad',age='21'

বিঃদ্রঃ:
এখানে যদি আইডি প্রাথমিক কী হয় তবে id='1' দিয়ে প্রথম সন্নিবেশের পরে id='1' ঢোকানোর চেষ্টা করার সময় প্রত্যেকটি নাম এবং বয়স আপডেট হবে এবং পূর্বের নাম বয়স পরিবর্তন হবে।


কারণ আমি এখানে এই সমাধানটি খোঁজার জন্য কিন্তু অন্য একটি অভিন্ন কাঠামোর টেবিল থেকে আপডেট করার জন্য (আমার ক্ষেত্রে ওয়েবসাইট পরীক্ষা ডিবিতে ডিবি বাস করতে):

INSERT  live-db.table1
SELECT  *
FROM    test-db.table1 t
ON DUPLICATE KEY UPDATE
        ColToUpdate1 = t.ColToUpdate1,
        ColToUpdate2 = t.ColToUpdate2,
        ...

অন্য কোথাও উল্লিখিত, শুধুমাত্র যে কলামগুলি আপনি আপডেট করতে চান শুধুমাত্র ON DUPLICATE KEY UPDATE আপডেটের পরে অন্তর্ভুক্ত করতে হবে।

INSERT বা SELECT কলামগুলি তালিকাভুক্ত করার প্রয়োজন নেই, যদিও আমি সম্ভবত এটি ভাল অনুশীলনের সাথে একমত।




INSERT IGNORE INTO table (id, name, age) VALUES (1, "A", 19);

INSERT INTO TABLE (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE SET NAME = "A", AGE = 19;

REPLACE INTO table (id, name, age) VALUES(1, "A", 19);

এই সব সমাধান আপনার প্রশ্নের সাথে কাজ করবে।

আপনি এই বিবৃতি সংক্রান্ত বিস্তারিত জানতে চাইলে এই লিঙ্কটিতে যান





insert-update