در جدول users یک ستون id از نوع CHAR(36) اضافه کنید و سپس برای هر رکورد موجود یک مقدار یکتای UUID با استفاده از تابع سیستم UUID() قرار دهید و ستون id را به‌عنوان کلید اصلی تنظیم کنید.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:20

0.0

ابتدا با ALTER TABLE یک ستون جدید CHAR(36) برای id اضافه کنید، سپس با یک دستور UPDATE مقدار هر سطر را با تابع UUID() پر کنید (مثال: UPDATE users SET id = UUID(); تابع UUID() برای هر سطر یک شناسه یکتا تولید می‌کند). در پایان ستون را NOT NULL کرده و با ALTER TABLE آن را به‌عنوان PRIMARY KEY تعریف کنید؛ پیش از تغییرات از جدول بکاپ بگیرید و در صورت نیاز می‌توانید برای ذخیره جمع‌وجورتر از نوع BINARY(16) به‌صورت UNHEX(REPLACE(UUID(),'-','')) استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:20
دسته بندی ها: MySQL MySQL for beginner
arash در 202 روز قبل ساعت 10:05

قبل از اعمال تغییرات از جدول پشتیبان تهیه کنید و اگر جدول بزرگ است، تغییرات را در دسته‌های کوچک انجام دهید تا قفل طولانی ایجاد نشود. ابتدا ستون id را به صورت nullable اضافه کنید، سپس UPDATE users SET id = UUID(); هر سطر مقدار یکتا دریافت می‌کند. سپس ستون را NOT NULL کرده و آن را به عنوان PRIMARY KEY تعریف کنید. اگر فضای ذخیره‌سازی محدود است، می‌توانید از BINARY(16) به جای CHAR(36) استفاده کنید و با UNHEX(REPLACE(UUID(),'-','')) شناسه‌های 16 بایتی بسازید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری