English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
السلسلة في MySQL هي مجموعة من الأعداد الصحيحة: 1, 2, 3، ...، حيث يمكن أن يكون هناك مفتاح رئيسي متزايد فقط في مجال واحد لجدول معين، إذا كنت ترغب في تحقيق النمو الذاتي لأي مجال آخر، يمكنك استخدام سلسلة MySQL لتحقيق ذلك.
في هذا الفصل سنقوم بشرح كيفية استخدام سلسلة MySQL.
من الطرق الأبسط لاستخدام السلسلة في MySQL هو استخدام MySQL AUTO_INCREMENT لتحديد السلسلة.
في هذا المثال، تم إنشاء جدول insect، لا يتطلب تحديد قيمة لـ id في جداول insect لتحقيق النمو الذاتي.
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 ); استعلام جيد، لم يكن هناك تأثير على السطور (0.02 ثانية) mysql> INSERT INTO insect (id, name, date, origin) VALUES -> (NULL, 'housefly', '2001-09-10', 'المطبخ'), -> (NULL, 'millipede', '2001-09-10', 'الطريق'), -> (NULL, 'grasshopper', '2001-09-10', 'الساحة الأمامية'); استعلام جيد، تم تأثير 3 سطر (0.02 ثانية) السجلات: 3 التكرارات: 0 التحذيرات: 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)
في واجهة MySQL يمكنك استخدام استخدام دالة LAST_INSERT_ID() في SQL للحصول على قيمة العمود التلقائي في الجدول الذي تم إدراجه أخيرًا.
تم تقديم نفس الدوال في سكربتات PHP وPERL للحصول على قيمة العمود التلقائي في الجدول الذي تم إدراجه أخيرًا.
استخدام خاصية mysql_insertid للحصول على قيمة AUTO_INCREMENT. مثال:
$dbh->do("INSERT INTO insect (name,date,origin VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid};
PHP يستخدم دالة mysql_insert_id () للحصول على قيمة العمود AUTO_INCREMENT في جملة الإدراج التي تم تنفيذها.
mysql_query("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id);
إذا كنت قد قمت بحذف عدة سجلات من الجدول وتود إعادة ترتيب الأعمدة AUTO_INCREMENT المتبقية، يمكنك القيام بذلك عن طريق حذف العمود التلقائي، ثم إضافته مرة أخرى. على الرغم من ذلك، يجب أن تكون حذرًا جدًا أثناء هذه العملية، إذا تم إضافة سجلات جديدة بينما يتم الحذف، قد يحدث فوضى في البيانات. العملية كالتالي:
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, -> ADD PRIMARY KEY (id);
عادةً يكون قيمة البداية للسلسلة 1، ولكن إذا كنت بحاجة إلى تحديد قيمة بداية 100، فإننا يمكننا تحقيق ذلك عن طريق الجملة التالية:
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, -> date DATE NOT NULL, -> origin VARCHAR(30) NOT NULL )engine=innodb auto_increment=100 charset=utf8;
أو يمكنك أيضًا تحقيق ذلك بعد إنشاء الجدول بناءً على الجملة التالية:
mysql> ALTER TABLE t AUTO_INCREMENT = 100;