পোস্টগ্র্রেএসকিউএল স্কিমা নামের বৈধ ফর্ম্যাটগুলি কী কী?


14

আমি পোস্টগ্রিজএসকিউএলএল স্কিমা নামের বৈধ ফর্ম্যাটগুলি বর্ণনা করে এমন ডকুমেন্টেশন খুঁজে পাচ্ছি না। আমি জানি যে স্কিমা নামটি পারে না:

  • একটি সংখ্যা দিয়ে শুরু করুন
  • জায়গা আছে
  • শুরু করা pg_

আর কি? আমার কোথায় দেখা উচিত?

উত্তর:


17

সূক্ষ্ম ডকুমেন্টেশন অনুযায়ী , আমি মনে করি এটি আপনি যা খুঁজছেন তা হতে পারে।

এসকিউএল শনাক্তকারী এবং মূল শব্দের অবশ্যই একটি অক্ষর দিয়ে শুরু করা উচিত (এজেড, তবে ডায়াক্রিটিকাল চিহ্ন এবং ল্যাটিন-অক্ষর সহ বর্ণগুলি) বা আন্ডারস্কোর (_)। সনাক্তকারী বা মূল শব্দের পরবর্তী অক্ষরগুলি বর্ণগুলি, আন্ডারস্কোরগুলি, অঙ্কগুলি (0-9), বা ডলার চিহ্ন (signs) হতে পারে। নোট করুন যে এসকিউএল স্ট্যান্ডার্ডের বর্ণ অনুসারে শনাক্তকারীগুলিতে ডলারের চিহ্নগুলি অনুমোদিত নয়, সুতরাং তাদের ব্যবহারের ফলে অ্যাপ্লিকেশনগুলি কম পোর্টেবল হতে পারে ...


ধন্যবাদ। আমি এই নির্দেশাবলী অনুসরণ করব এবং সেগুলি বৈধ স্কিমার নাম কিনা তা দেখুন। যদি তা হয় তবে আমি এটি গ্রহণ করব।

pg_নাথন সি যেমন উল্লেখ করেছেন , সেই লিঙ্কটিতে আন্ডারস্কোর যুক্ত করতে পারে ।
রামন তায়াগ

5

ডকুমেন্টেশন অনুসারে , এটি pg_সংরক্ষিত থাকায় এটি শুরু করতে পারে না । এটি ছাড়াও এটি মোটামুটি ফ্রিফর্ম দেখায়।


ধন্যবাদ আমি কী স্কিমার নাম দেওয়া যায় না তার তালিকায় এটি যুক্ত করব। দুর্ভাগ্যক্রমে, এটি একমাত্র নিয়ম নয়, দৃশ্যত। আমি এটির নাম রাখতে পারলাম this-is schemaএবং এটি এখনও একটি অবৈধ স্কিমা নাম হবে।

3
@ রমন: কঠোরভাবে বলতে গেলে এটি হ'ল বা এটি-হ'ল স্কিমাটি বৈধ স্কিমা নাম। আপনি যেটি বৈধ তা কখনই উদ্ধৃত করতে হবে তা নিয়ে আপনি বিভ্রান্তি বোধ করছেন ।
ড্যানিয়েল ভ্যারিট

হ্যাঁ আপনি সম্ভবত সঠিক। আমাকে এটি দেখতে দিন।
রমন তাইগ

3

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

সুতরাং আপনি যদি আপনার শনাক্তকারীদের উদ্ধৃতি দিতে চলেছেন তবে আপনি যে কোনও চরিত্র (\ 0 বাদে) ব্যবহার করতে পারেন। তবে আপনি যদি আপনার শনাক্তকারীদের উদ্ধৃতি না দিয়ে থাকেন তবে আপনাকে সেই পৃষ্ঠায় বর্ণিত বিধিগুলি অনুসরণ করতে হবে।

আমি এটি উল্লেখ করতে চেয়েছিলাম মূলত কারণ এটি আমাকে আগে দংশন করেছে, বিশেষত অ-উদ্ধৃত শনাক্তকারীদের ক্ষেত্রে (এবং স্কিমা নাম শনাক্তকারী হিসাবে গণনা করা হয়) concerning

হালনাগাদ:

উদাহরণ হিসাবে (বিশেষত স্কিমা শনাক্তকারীদের ক্ষেত্রে প্রযোজ্য নয়, তবে তাদের ক্ষেত্রেও সমানভাবে প্রযোজ্য):

    DROP TABLE "tbluser"; -- assuming it exists
    DROP TABLE "TBLUSER"; -- assuming it exists; incidentally, they are two different tables
    CREATE TABLE "TBLUSER" ( username text ); 
    INSERT INTO "TBLUSER" VALUES ( 'joe' ); 
    SELECT * FROM TBLUSER; -- this returns an error that the tbluser relation does not exist
    SELECT * FROM "TBLUSER"; -- works fine

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

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

উদাহরণস্বরূপ, এটি ইউপিআইয়ের মাধ্যমে একটি সারণী তৈরি করার সময় পিজিএডমিন তৃতীয় দ্বারা নির্মিত স্ক্রিপ্ট:

    CREATE TABLE public."TBLUSER"
    (
      username text
    ) 
    WITH (
      OIDS = FALSE
    )
    ;

সুতরাং, কোনও কোয়েরিতে কোনও ব্যবহারকারী এই টেবিলটি অ্যাক্সেস করতে পারবেন তার উদ্ধৃত শনাক্তকারী, অর্থাত্‍, উল্লেখ করে "TBLUSER"। কোনও উদ্ধৃতিবিহীন শনাক্তকারীর সাথে কোনও প্রশ্নের ক্ষেত্রে এই টেবিলটি অ্যাক্সেস করার চেষ্টা করার ফলে সম্পর্কটি সনাক্ত করতে ব্যর্থ হবে, অর্থাত্ TBLUSER,।


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