একাধিক সারি একক প্রশ্নের মধ্যে সন্নিবেশ করার জন্য MySQL অনুলিপি মূল আপডেট




duplicates (3)

আমার একটি এসকিউএল প্রশ্ন আছে যেখানে আমি একক প্রশ্নের মধ্যে একাধিক সারি সন্নিবেশ করতে চাই। তাই আমি ভালো কিছু ব্যবহার:

$sql = "INSERT INTO beautiful (name, age)
  VALUES
  ('Helen', 24),
  ('Katrina', 21),
  ('Samia', 22),
  ('Hui Ling', 25),
  ('Yumie', 29)";

mysql_query( $sql, $conn );

সমস্যাটি যখন আমি এই প্রশ্নটি কার্যকর করি, তখন আমি একটি UNIQUE কী (যা PRIMARY KEY ), যেমন 'name' উপরে চেক করা উচিত কিনা তা যাচাই করতে চাই এবং যদি এই 'name' ইতিমধ্যে বিদ্যমান থাকে তবে সংশ্লিষ্ট সারিটি উচিত অন্যথায় সন্নিবেশ করা আপডেট করা হবে।

উদাহরণস্বরূপ, নিচের উদাহরণে, যদি 'Katrina' ডাটাবেসে ইতিমধ্যে উপস্থিত থাকে, তবে ক্ষেত্রের সংখ্যা নির্বিশেষে সমগ্র সারি আপডেট করা উচিত। আবার 'Samia' উপস্থিত না হলে, সারি ঢোকানো উচিত।

আমি ব্যবহার করার চিন্তা:

INSERT INTO beautiful (name, age)
      VALUES
      ('Helen', 24),
      ('Katrina', 21),
      ('Samia', 22),
      ('Hui Ling', 25),
      ('Yumie', 29) ON DUPLICATE KEY UPDATE

এখানে ফাঁদ হয়। আমি আটকে গেলাম কিভাবে এগিয়ে যেতে হবে। আমি একটি সময়ে সন্নিবেশ / আপডেট একাধিক সারি আছে। আমাকে একটি দিক দিতে দয়া করে। ধন্যবাদ।


সন্নিবেশ করানো হচ্ছে ... মূল আপডেটটি কেবলমাত্র MYSQL এর জন্য কাজ করবে, SQL সার্ভারের জন্য নয়।

এসকিউএল সার্ভারের জন্য, এটির চারপাশে কাজ করার উপায়টি প্রথমে একটি টেম্প টেবিল ঘোষণা করা, সেই টেম্প টেবিলের মান সন্নিবেশ করান এবং তারপরে মার্জ ব্যবহার করুন

এটার মত:

declare @Source table
(
name varchar(30),
age decimal(23,0)
)

insert into @Source VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29);


MERGE beautiful  AS Tg
using  @source as Sc
on tg.namet=sc.name 

when matched then update 
set tg.age=sc.age

when not matched then 
insert (name, age) VALUES
(SC.name, sc.age);

নতুন মান পড়ুন ( documentation ) শব্দ VALUES ব্যবহার করুন।

INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age),
     ...

আপনি INSERT এর পরিবর্তে Replace ব্যবহার করতে পারেন ... মূল আপডেটটি অনুলিপি করুন।





duplicates