خانه / fd / استفاده از دنباله ها در MySQL — راهنمای جامع

استفاده از دنباله ها در MySQL — راهنمای جامع

در MySQL دنباله به مجموعه‌ای از اعداد صحیح ۱، ۲، ۳، … گفته می‌شود که به ترتیب برای درخواست مشخصی ایجاد شده‌اند. دنباله‌ها به طور مکرر در پایگاه داده مورد استفاده قرار می‌گیرند، زیرا اپلیکیشن‌های زیادی نیازمند این هستند که هر ردیف در یک جدول شامل یک مقدار یکتا باشد و دنباله‌ها روشی آسان برای تولید چنین مقادیری ارائه می‌کنند. در این بخش از سلسله مطالب راهنمای MySQL به معرفی شیوه استفاده از دنباله‌ها در MySQL می‌پردازیم.

استفاده از ستون AUTO_INCREMENT

در MySQL ساده‌ترین روش برای استفاده از دنباله‌ها، تعریف یک ستون به صورت AUTO_INCREMENT است. بدین ترتیب MySQL، خود وظیفه افزایش شماره ردیف‌ها با درج رکوردهای جدید را بر عهده می‌گیرد.

مثال

در مثال زیر یک جدول ایجاد می‌شود و پس از آن چند ردیف در جدول درج می‌شود که برای آن‌ها لازم نیست ID رکورد معین شود، چون ID آن‌ها از سوی MySQL به صورت خودکار افزایش می‌یابند.

mysql> CREATE TABLE insect    -> (    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,    -> PRIMARY KEY (id),    -> name VARCHAR(30) NOT NULL, # type of insect    -> date DATE NOT NULL, # date collected    -> origin VARCHAR(30) NOT NULL # where collected ); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO insect (id,name,date,origin) VALUES    -> (NULL,'housefly','2001-09-10','kitchen'),    -> (NULL,'millipede','2001-09-10','driveway'),    -> (NULL,'grasshopper','2001-09-10','front yard'); Query OK, 3 rows affected (0.02 sec) Records: 3  Duplicates: 0  Warnings: 0 mysql> SELECT * FROM insect ORDER BY id; +----+-------------+------------+------------+ | id |    name     |    date    |   origin   | +----+-------------+------------+------------+ |  1 |  housefly   | 2001-09-10 |   kitchen  | |  2 |  millipede  | 2001-09-10 |  driveway  | |  3 | grasshopper | 2001-09-10 | front yard | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)

به دست آوردن مقادیر AUTO_INCREMENT

تابع ()LAST_INSERT_ID در SQL را می‌توان روی هر کلاینتی که بتواند عبارت‌های SQL صادر کند، استفاده کرد. همچنین اسکریپت‌های PERL و PHP تابع‌های اختصاصی برای بازیابی مقدار AUTO_INCREMENT یک رکورد ارائه کرده‌اند.

مثال PERL

می‌توان از خصوصیت mysql_insertid برای به دست آوردن مقدار AUTO_INCREMENT تولید شده از سوی کوئری استفاده کرد. این خصوصیت بسته به این که کوئری چگونه ارسال شده باشد، از طریق یک دستگیره پایگاه داده (handle) یا یک دستگیره عبارت به دست می‌آید.

در مثال زیر از طریق دستگیره پایگاه داده این مقدار مورد ارجاع قرار می‌گیرد:

$dbh->do ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid};

مثال PHP

پس از صدور کوئری که یک مقدار AUTO_INCREMENT تولید می‌کند، می‌توان مقدار آن را با استفاده از دستور ()mysql_insert_id بازیابی کرد:

mysql_query ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id);

شماره‌گذاری مجدد یک دنباله موجود

در برخی موارد لازم است که رکوردهای زیادی را از یک جدول پاک کنیم و در این صورت لازم می‌شود که دنباله رکوردها را مجدداً ایجاد کنیم. این کار از طریق یک ترفند ساده امکان‌پذیر است؛ اما در صورتی که جدول شما با جدول‌های دیگر JOIN شده باشد، باید در این خصوص هوشیار باشید. اگر به این نتیجه رسیدید که تولید مجدد دنباله یک ستون AUTO_INCREMENT ناگزیر است، روش کار بدین صورت است که آن ستون را از جدل حذف کنید و سپس آن را مجدداً اضافه نمایید.

در مثال زیر روش شماره‌گذاری مجدد id values در جدول با استفاده از این تکنیک نمایش یافته است:

mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,    -> ADD PRIMARY KEY (id);

آغاز یک دنباله از یک مقدار مشخص

MySQL به طور پیش‌فرض دنباله‌ها را از ۱ آغاز می‌کند؛ اما می‌توان یک عدد خاص را در هنگام ایجاد جدول تعیین کرد که دنباله‌ها از آن عدد شروع شوند. در قطعه کد زیر یک مثال ارائه شده که نشان می‌دهد MySQL چگونه دنباله این جدول را از ۱۰۰ آغاز می‌کند.

mysql> CREATE TABLE insect    -> (    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,    -> PRIMARY KEY (id),    -> name VARCHAR(30) NOT NULL, # type of insect    -> date DATE NOT NULL, # date collected    -> origin VARCHAR(30) NOT NULL # where collected );

روش جایگزین این است که جدولی ایجاد کنید و سپس مقدار آغازین دنباله را در دستور ALTER TABLE تعیین کنید.

اگر این مطلب برایتان مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

  • مجموعه آموزش‌های پایگاه داده و سیستم‌های مدیریت اطلاعات
  • نصب MySQL — راهنمای گام‌ به‌ گام
  • مجموعه آموزش‌های دروس مهندسی کامپیوتر
  • چگونه دیتابیس MySQL را بر روی ویندوز نصب کنیم؟
  • مدیریت مقادیر NULL در MySQL — راهنمای جامع

==

بلی خیر

نوشته استفاده از دنباله ها در MySQL — راهنمای جامع اولین بار در وبلاگ فرادرس. پدیدار شد.

درباره ی admin

مطلب پیشنهادی

آموزش پایتون: وب اپلیکیشن برای گردآوری داده با استفاده از PostgreSQL و Flask

کار کردن با پایگاه داده و کوئری‌ها در برخی موارد ممکن است برای برخی از افراد و یا شاید اغلب افراد کاملاً ملال‌آور باشد. ما قطعاً واقف هستیم که حتی گنجاندن عبارت PostgreSQL در عنوان این مطلب نیز باعث انصراف تعداد زیادی از خواننده‌های مجله فرادرس از مطالعه این مطلب شده است؛ اما شما که این مطلب را برای مطالعه انتخاب کرده‌اید، باید بدانید که پایگاه داده موضوع مهمی برای یادگیری محسوب می‌شود. مطالعه این مطلب با موضوع ساخت وب اپلیکیشن برای گردآوری داده با استفاده از PostgreSQL و Flask هیچ دشواری برای شما نخواهد داشت. پیشنهاد می‌کنیم قبل از مطالعه این راهنما، نقل‌قول زیر را دو بار بخوانید: آن چه افراد خودساخته را از مردمی که زندگی الهام‌بخشی ندارند، جدا می‌سازد، این است که آن‌ها کارهایی انجام می‌دهند که افراد کمتر رشد‌یافته دوست ندارند انجام دهند؛ هر چند آن‌ها نیز احتمالاً این کارها را دوست نداشته‌اند. -رابین شارما – کتاب «راهبی که فِراری‌اش را فروخت» شاید اغلب ما از کار با پایگاه داده خوشمان نیاید؛ اما همچنان که شارما در کتاب خود گفته است این همان چیزی است که ما را از انبوه مردم جدا می‌کند..

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *