উত্তর:
আমি যতদূর বলতে পারি উভয় বাক্য গঠন সমান। প্রথমটি এসকিউএল স্ট্যান্ডার্ড, দ্বিতীয়টি মাইএসকিউএল এর এক্সটেনশন।
সুতরাং তাদের সঠিক সমতুল্য পারফরম্যান্স অনুযায়ী হওয়া উচিত।
http://dev.mysql.com/doc/refman/5.6/en/insert.html বলেছেন:
INSERT একটি বিদ্যমান সারণীতে নতুন সারি সন্নিবেশ করিয়েছে। INSERT ... VALUES এবং INSERT ... বিবরণীর সেট ফর্মগুলি সুনির্দিষ্টভাবে নির্দিষ্ট মানগুলির উপর ভিত্তি করে সারি সন্নিবেশ করান। INSERT ... অন্য সারণী বা টেবিল থেকে নির্বাচিত ফর্ম সন্নিবেশ সারি নির্বাচন করুন।
INSERT INTO table SET
? এটা কি সম্ভব?
আমি মনে করি এক্সটেনশনটি সন্নিবেশ এবং আপডেটের জন্য অনুরূপ সিনট্যাক্সের অনুমতি দেওয়ার জন্য is ওরাকলে, অনুরূপ সিনট্যাকটিকাল ট্রিকটি হ'ল:
UPDATE table SET (col1, col2) = (SELECT val1, val2 FROM dual)
INSERT ... SET ...
এবং INSERT ... VALUES ...
। বৈশিষ্ট্যটির জন্য আপনার সংক্ষিপ্ত, দ্রুত-লেখার কোড, পাঠযোগ্যতা বৃদ্ধি এবং আপনার VALUES
ধারাটি লেখার সময় আপনার কলামের ক্রমটি মিশ্রিত করার কারণে টাইপস নির্মূলকরণ রয়েছে । আমার অন্ত্রে আমাকে বলে যে ভাল নেট ভাল খারাপ তুলনায় বেশি, কিন্তু আপনার রায় পৃথক হতে পারে।
যেহেতু INSERT INTO table SET x=1, y=2
বাক্যবিন্যাস সমান (মাইএসকিউএল তে যেভাবেই হোক), আমি বাক্য গঠনটি পছন্দ করি , যেহেতু বিবৃতিতে ত্রুটিগুলি ধরা সহজতর এবং সহজতর, বিশেষত প্রচুর কলাম সন্নিবেশ করার সময়। যদি আপনাকে 10 বা 15 বা আরও কলাম সন্নিবেশ করতে (x, y) VALUES (1,2)
হয় তবে আমার মতে সিনট্যাক্স ব্যবহার করে কিছু মিশ্রিত করা সত্যিই সহজ ।
বিভিন্ন এসকিউএল মানের মধ্যে পোর্টেবিলিটি যদি একটি সমস্যা হয়, তবে সম্ভবত INSERT INTO table (x, y) VALUES (1,2)
পছন্দ করা হবে be
এবং আপনি যদি একক ক্যোয়ারিতে একাধিক রেকর্ড সন্নিবেশ করতে চান তবে INSERT INTO ... SET
সিনট্যাক্সটি কাজ করবে বলে মনে হয় না , অন্যদিকে এটি অন্যটি করবে। তবে বেশিরভাগ ব্যবহারিক ক্ষেত্রে, আপনি যে কোনওভাবে সন্নিবেশ করানোর জন্য রেকর্ডের একটি সেট দিয়ে লুপ করছেন, যদিও এমন কিছু ঘটনাও ঘটতে পারে যেখানে একটি ক্যোয়ারিতে একটি সারণীতে একটি সারির গুচ্ছ সন্নিবেশ করানোর জন্য একটি বৃহত ক্যোয়ারী তৈরি করা যেতে পারে, যার জন্য কোনও প্রশ্নের জন্য প্রতিটি সারি, একটি কর্মক্ষমতা উন্নতি হতে পারে। সত্যিই জানি না।
INSERT INTO table SET
স্ট্যান্ডার্ড নয়। এটা অনেক পরিষ্কার মনে হচ্ছে। আমার ধারণাINSERT INTO table ([column name, column name b]) VALUES (['value a', 'value b'])
, পোস্টগ্রিসে বন্দরে রাখলে সমস্যা থেকে নিজেকে বাঁচাতে হলেও আমাকে সিনট্যাক্সটি ব্যবহার করতে হবে ।