আমি কীভাবে স্প্যাটিএলাইট ডিবিতে কোনও টেবিলটির সঠিক নামকরণ করতে পারি?


11

স্প্যাটিয়ালাইটে স্পিটিয়াল লেয়ারস (টেবিল) এর মধ্যে বিভিন্ন সমর্থনকারী অবজেক্ট এবং মেটাডেটা অন্তর্ভুক্ত রয়েছে, যার মধ্যে ট্রিগার, সূচক এবং geometry_columnsসারণিতে (ন্যূনতম) এন্ট্রি রয়েছে। আমি এমন একটি জিইউআইয়ের সন্ধান করছি যা একযোগে সমস্ত প্রয়োজনীয় পরিবর্তনগুলি পরিচালনা করতে পারে, বা (ফ্যালব্যাক) সমস্ত প্রয়োজনীয় পরিবর্তনের ডকুমেন্টেশন যাতে স্থানিক স্তরগুলি ভেঙে না যায়।

টেবিলগুলির রয়েছে:

  1. মধ্যে এণ্ট্রি geometry_columns.f_table_name
  2. পাঁচটি ট্রিগার নামকরণ করা হয়েছে [prefix]_[table_name]_geometry, যেখানে উপসর্গটি নির্দেশ করে যে এটি কোনও লেনদেন রোলব্যাক বা সূচক আপডেট।
  3. তিনটি স্থানিক সূচক নামকরণ করা হয়েছে idx_[table_name]_geometry[_suffix]

আমি এটি দুটি অ্যাপ্লিকেশন, কিউজিআইএস ডিবি ম্যানেজার এবং স্প্যাটিয়ালাইট-জিইআইতে চেষ্টা করেছি।

কিউজিআইএস ডিবি ম্যানেজারের নিম্নলিখিত প্রভাবগুলি উপস্থিত রয়েছে:

  1. geometry_columnsনতুন টেবিলের নাম সহ সঠিকভাবে আপডেট করুন
  2. ট্রিগারগুলির নাম পরিবর্তন করে না। ট্রিগার সংজ্ঞাটি আংশিকভাবে পরিবর্তিত হয়েছে যাতে এটি BEFORE [INSERT|UPDATE|DELETE]নতুন টেবিলের নামকে বোঝায়, তবে শর্তটি এখনও পুরানো নামটির জন্য সন্ধান করে geometry_columns
  3. স্থানিক সূচকগুলির নাম পরিবর্তন করে না। এটি নিশ্চিত কিনা তা নিশ্চিত নয় কারণ ট্রিগারগুলি এখনও পুরানো সূচকের নাম উল্লেখ করে।

আপনি স্প্যানটিএলাইট-জিইআইতে রক্ষণাবেক্ষণ table সারণীর পুনঃনামকরণটি চয়ন করার সময় আপনি কেবল এসকিউএল ALTER TABLEস্টেটমেন্টের স্টাব পাবেন । এটি সোজা এসকিউএল এবং কিউজিআইএস ডিবি ম্যানেজারের চেয়েও কম করে। আপনি যদি নতুন টেবিলের নামটি পূরণ করেন তবে টেবিলটির নতুন নাম দেওয়া হবে। অন্যান্য প্রভাব:

  1. ছক নেই না নামকরণ পেতে geometry_columns.f_table_name, যার মানে অনেক GISes একটি স্থানিক স্তর হিসেবে টেবিল দেখতে পাবেন না।
  2. ট্রিগারগুলির নাম পরিবর্তন করে না। ট্রিগার সংজ্ঞাটি আংশিকভাবে পরিবর্তিত হয়েছে যাতে এটি BEFORE [INSERT|UPDATE|DELETE]নতুন টেবিলের নামকে বোঝায়, তবে শর্তটি এখনও পুরানো নামটির জন্য সন্ধান করে geometry_columns
  3. স্থানিক সূচকগুলির নাম পরিবর্তন করে না। এটি নিশ্চিত কিনা তা নিশ্চিত নয় কারণ ট্রিগারগুলি এখনও পুরানো সূচকের নাম উল্লেখ করে।

নোট করুন যে স্প্যাটিয়ালাইট-জিইউআই একটি জ্যামিতি কলাম পুনরুদ্ধার করার বিকল্প দেয় যা এতে সঠিক এন্ট্রি যুক্ত করে geometry_columns(তবে আপনাকে এসআরআইডি, জ্যামিতির ধরণ এবং মাত্রা নির্দিষ্ট করতে হবে), একটি স্থানিক সূচক তৈরি বা পুনর্নির্মাণ এবং ট্রিগারগুলি পুনরুদ্ধার করার জন্য, তবে কিছুই নেই এই ফাংশনগুলির মধ্যে পুরানো টেবিল সারি, ট্রিগার, বা সূচকগুলি সরিয়ে ফেলা হয়, এতে একটি ডিবিতে পৌঁছায় যার মধ্যে এতে অনেকগুলি (সম্ভবত ক্ষতিহীন তবে বিরক্তিকর) স্ক্মমুটজ থাকে।


3
আমি মনে করি স্পাটিএলাইটে পুনরায় সাজানো, পুনর্নবীকরণ, মুছে ফেলা ইত্যাদির ক্ষেত্রগুলি মুছে ফেলার জন্য "টেবিল ম্যানেজার" এর খুব প্রয়োজন আছে যদি আমরা কখনও শেপ ফাইলগুলি থেকে মুক্তি পেতে চাই। তবে, অজানা কারণে, এমন কোনও সরঞ্জাম নেই যা আমাদের তাতে সহায়তা করবে, যতদূর আমি জানি। ভিড় তহবিল উদ্যোগের জন্য একটি ভাল প্রকল্প হতে পারে!
বার্ড ভি।

আপনার কাছে স্থানিক গুইয়ের কোন সংস্করণ আছে?
ব্যবহারকারী 30184

স্পাটিএলাইট-জিইউআই 1.7.1।
লি হাচাদুরিয়ান 0

উত্তর:


2

আপনি যখন নতুন ডেটা অনুলিপি করছেন তখন আপনাকে নতুন টেবিলের নাম দিয়ে টেবিলটি অনুলিপি করতে হবে এবং কলামগুলির নাম পরিবর্তন করতে হবে। একটি টেবিল ম্যানেজার ফাংশন এটির জন্য আদর্শ হতে পারে তবে গুইয়ের জন্য এখনও তৈরি করা হয়নি। নীচের লিঙ্কটি এসকিউএলাইটে নমুনা কোড সহ এর জন্য কিছু আনুষ্ঠানিক তথ্য দেখায়। স্পাটিএলাইট এসকিউএলাইটের একটি অংশ তাই কোডিং একই। শুভকামনা!

https://blog.xojo.com/2013/12/04/renaming-columns-in-sqlite-tables/


নোট করুন যে প্রশ্নটি কলামগুলি নয়, টেবিলগুলির নাম পরিবর্তন করার বিষয়ে । লিঙ্কযুক্ত পৃষ্ঠাটি বিবৃতিটি আলোচনা করে , তবে কেন একটি স্থানিক ডাটাবেসের জন্য এটি অপর্যাপ্ত তা ইতিমধ্যে প্রশ্নটি সম্বোধন করে। ALTER TABLE
লি হাচাদুরিয়ান

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