কোনও টেবিলের ডিফল্ট কোলেশন কীভাবে পরিবর্তন করবেন?


187
create table check2(f1 varchar(20),f2 varchar(20));

ডিফল্ট কোলেশন সহ একটি সারণী তৈরি করে latin1_general_ci;

alter table check2 collate latin1_general_cs;
show full columns from check2;

কলামগুলির স্বতন্ত্র জোট 'ল্যাটিন 1_ জেনারাল_সি' হিসাবে দেখায়।

তাহলে অলটার টেবিল কমান্ডের প্রভাব কী?



আপনি নিজে এবং সঠিক উত্তরটি পরিবর্তন করতে চাইবেন এবং অনেকেই মনে করেন যে ২ য় উত্তর সঠিক 2nd
আহি টুনা

উত্তর:


597

বিদ্যমান কলামগুলির সাথে একটি সারণীর ডিফল্ট অক্ষর সেট এবং কোলেশন পরিবর্তন করতে (ধারাটিতে রূপান্তর নোট করুন ):

alter table <some_table> convert to character set utf8mb4 collate utf8mb4_unicode_ci;

উত্তরটি সম্পাদনা করা হয়েছে, কিছু মন্তব্য দেওয়ার জন্য ধন্যবাদ:

Utf8 এর সুপারিশ করা এড়ানো উচিত। এটি আপনি যা চান তা প্রায় কখনও নয় এবং প্রায়শই অপ্রত্যাশিত জঞ্জাল বাড়ে। Utf8 অক্ষর সেটটি ইউটিএফ -8 এর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ নয়। আপনি ইউটিএফ -8 চাইলে utf8mb4 অক্ষর সেটটি আপনি চান। - ধনী রিমার মার্চ 28 '18 এ 23:41 এ

এবং

এটি বেশ গুরুত্বপূর্ণ বলে মনে হচ্ছে, আমি মন্তব্যগুলি পড়তে পেরে আনন্দিত এবং @ রিচারারকে ধন্যবাদ জানাই। নিকি, আমি মনে করি আপনার উত্তরটিতে এটি সম্পাদনা করা উচিত যা এটি কত দর্শন পেয়েছে considering এখানে দেখুন https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html এবং এখানে মাইএসকিউএলে utf8mb4 এবং utf8 অক্ষরগুলির মধ্যে পার্থক্য কী? - পলপ্রো 12 মার্চ 17:46 এ


4
ডিফল্ট অক্ষর সেটটি পরিবর্তন করার কী কী প্রভাব রয়েছে? এটি কি বিদ্যমান ডেটা আপডেট করে এবং তাই টেবিলের মাধ্যমে চালানো এবং আপডেট করা, এটি লক করা ইত্যাদি দরকার হয়?
প্রদান করুন

utf8_binভাল, তাই না? মধ্যে পার্থক্য কি utf8_binএবং utf8_unicode_ci?
জেসম ডটনেট

1
আমি ব্যবহার করেছি এটি একটি উদাহরণ। পার্থক্যটি হ'ল utf8_binকেস-সংবেদনশীল এবং utf8_unicode_ciকেস-সংবেদনশীল। একটি অপরটির চেয়ে অপরিহার্যভাবে ভাল নয় - আপনার প্রয়োজন অনুসারে যা কিছু ব্যবহার করুন।
নিকি এরউইন রামিরেজ

12
আপনি এখন utf8mb4_unicode_ci ব্যবহার করা উচিত @JasomDotnet stackoverflow.com/questions/766809/...
baptx

2
সুপারিশ এড়ানো উচিত utf8। এটি আপনি যা চান তা প্রায় কখনও নয় এবং প্রায়শই অপ্রত্যাশিত জঞ্জাল বাড়ে। utf8অক্ষর সেট হল UTF-8 সঙ্গে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ নয়। utf8mb4অক্ষর সেট যদি আপনি হল UTF-8 চান কি আপনি চান হয়।
ধনী রিমার

34

মাইএসকিউএল এর 4 স্তরের কোলেশন রয়েছে: সার্ভার, ডাটাবেস, টেবিল, কলাম। আপনি যদি সার্ভার, ডাটাবেস বা টেবিলের কোলেশন পরিবর্তন করেন তবে আপনি প্রতিটি কলামের জন্য সেটিংস পরিবর্তন করেন না, তবে আপনি ডিফল্ট কোলেশন পরিবর্তন করেন।

উদাহরণস্বরূপ, যদি আপনি কোনও ডাটাবেসের ডিফল্ট কোলিশন পরিবর্তন করেন, সেই ডাটাবেসে আপনার তৈরি প্রতিটি নতুন সারণি সেই কোলেশনটি ব্যবহার করবে এবং আপনি যদি কোনও টেবিলের ডিফল্ট কোলিশন পরিবর্তন করেন, আপনি সেই টেবিলটিতে তৈরি প্রতিটি কলামটি সেই সমষ্টি পাবে।


8
প্রকৃতপক্ষে, মাইএসকিউএলএর পাঁচটি স্তর রয়েছে কোলেশন, এমন একটি অক্ষর সেট স্তরের ডিফল্ট কল্যানেশন সেটিং রয়েছে যা অনেকে ভুলে যায়।
ডেভি

6
সংযোগের কোলেশনও রয়েছে show variables like "collation%";, সুতরাং মোট ছয়টি
Dzmitry Lazerka

9

এটি টেবিলের জন্য ডিফল্ট কোলেশন সেট করে; আপনি যদি একটি নতুন কলাম তৈরি করেন তবে সেটিকে ল্যাটিন_জেনারাল_সি'র সাথে ভাগ করা উচিত - আমি মনে করি। স্বতন্ত্র কলামের জন্য কোলেশন নির্দিষ্ট করার চেষ্টা করুন এবং দেখুন এটি কার্যকর কিনা। মাইএসকিউএল যেভাবে এটি পরিচালনা করে সে সম্পর্কে কিছু সত্যই উদ্ভট আচরণ রয়েছে।


3

কেবল টেবিল নয়, এসসিএইচএমএ পরিবর্তন করার প্রয়োজন হতে পারে

ALTER SCHEMA `<database name>`  DEFAULT CHARACTER SET utf8mb4  DEFAULT COLLATE utf8mb4_unicode_ci (as Rich said - utf8mb4);

(মারিয়াডিবি 10)


<database name>পরিবর্তে<table name>
dnivog

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