পোস্টগ্রিসে কীওয়ার্ডের মতো কলামের নামগুলি ত্যাগ করা


134

পোস্টগ্রিসের টেবিলের কলামটির যদি নাম থাকে তবে সেই কলামটির মান নির্ধারণ করতে yearকীভাবে INSERTজিজ্ঞাসা করা উচিত ?

উদাহরণস্বরূপ: বছরের শব্দের INSERT INTO table (id, name, year) VALUES ( ... );নিকটে একটি ত্রুটি দেয় ।

উত্তর:


211

yearএটি একটি কীওয়ার্ড হিসাবে ব্যাখ্যা করা বন্ধ করতে কেবল ডাবল উদ্ধৃতিতে আবদ্ধ করুন :

INSERT INTO table (id, name, "year") VALUES ( ... );

ডকুমেন্টেশন থেকে :

দ্বিতীয় ধরণের শনাক্তকারী রয়েছে: সীমাবদ্ধ শনাক্তকারী বা উদ্ধৃত শনাক্তকারী। এটি ডাবল-কোট (") এর অক্ষরগুলির একটি স্বেচ্ছাসেবী অনুক্রমকে সংযুক্ত করে গঠিত হয় A একটি বিস্মৃত সনাক্তকারী সর্বদা সনাক্তকারী হয় না, কখনও কোনও মূল শব্দ হয় না So সুতরাং" নির্বাচন করুন "নামটি একটি" কলাম "নামক কলাম বা সারণীতে উল্লেখ করতে ব্যবহৃত হতে পারে, যদিও একটি অনাবৃত নির্বাচনকে একটি মূল শব্দ হিসাবে গ্রহণ করা হবে এবং তাই কোনও টেবিল বা কলামের নাম প্রত্যাশিত যেখানে ব্যবহার করা হয় তখন পার্স ত্রুটি প্ররোচিত করবে।


44
কিছু সতর্কতা: উদ্ধৃতি ব্যতীত পোস্টগ্র্যাস এসকিউএল সমস্ত শনাক্তকারীকে ছোট হাতের জন্য ভাঁজ করে। MyTable, myTableএবং mytableঠিক একই। সঙ্গে কোট এই ভাঁজ না সম্পন্ন করা হয়। সুতরাং "MyTable"আর আগের মত হয় না mytable
এএইচ

19
আরও ভাল, সংরক্ষিত শব্দ বা সনাক্তকারী হিসাবে মিশ্র কেস ব্যবহার করতে বাধা এবং আপনাকে কখনই ডাবল উদ্ধৃতি ব্যবহার করতে হবে না বা অদ্ভুত ত্রুটি বার্তা পেতে হবে না।
এরউইন ব্র্যান্ডস্টেটার


8
আপনি যখন কোনও প্রতিষ্ঠিত প্রকল্পে কাজ করেন তখনই এমউইন ব্র্যান্ডসটেটার সমস্যা হয়।
ক্রমানুসারে

5
@ হোওংলং হ্যাঁ তা করে। update "user" set "password" = 'value...';পুরোপুরি
ঠিকঠাক

0

আপনি যদি কোনও ক্ষেত্র / কলামে কোট সরবরাহ না করে থাকেন তবে এটি পোস্টগ্র্রেস ডিফল্টরূপে নিম্নতর হবে। এবং পোস্টগ্রিস কলামের নাম এলে কীওয়ার্ড চেক করতে এড়িয়ে যাবে।

আপনার ক্ষেত্রে, আমি মনে করি না যে এটি যখন আসে তখন কোট যুক্ত করা বাধ্যতামূলক columns। কিন্তু যদি আপনি ব্যবহার করছেন keywords(Postgres দ্বারা নিবন্ধীকৃত) এর নামের Table, Schema, Functionবা Triggerইত্যাদি, হয় আপনি ডবল কোট ব্যবহার থাকতে হবে, অথবা আপনি ডট সংযুক্তকরণের সঙ্গে স্কিমা নাম নির্দিষ্ট করতে পারেন।

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

সেই সময়ে, পোস্টগ্রিস আপনাকে একটি সারণী তৈরি করার অনুমতি দেবে keywords। এটাই পোস্টগ্রিসের সৌন্দর্য।

অর্ডার সারণীটি অ্যাক্সেস করতে হয় হয় আপনাকে একটি ডাবল উদ্ধৃতি ব্যবহার করতে হবে অথবা আপনি সারণির নামের আগে স্কিমা নাম ব্যবহার করতে পারেন।

ই জি

1।

select * from schema_name.order;

2।

select * from "order";

তেমনি, আপনি এই জাতীয় সংমিশ্রণটি ব্যবহার করতে পারেন। আশা করি এটা তোমাকে সাহায্য করবে।

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