П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 185994 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 87299 раз(а).

Учебник HTML.
Просмотров 79555 раз(а).

Руководство по PHP5.
Просмотров 50062 раз(а).

Хостинг через призму DNS.
Просмотров 57763 раз(а).

Подборка текстов стандартных документов.
Просмотров 49103 раз(а).

Учебник PHP - Самоучитель
Просмотров 55916 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 57262 раз(а).

Внешние атаки...
Просмотров 46597 раз(а).

Учебник PHP.
Просмотров 41000 раз(а).

SSI в примерах.
Просмотров 31282 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 3. Учебное пособие по MySQL
Пред. След.

3.5. Примеры стандартных запросов
3.5.9. Использование атрибута AUTO_INCREMENT

Атрибут AUTO_INCREMENT может использоваться для генерации уникального идентификатора для новых строк:

CREATE TABLE animals (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)
 );
INSERT INTO animals (name) VALUES ("dog"),("cat"),("penguin"),
  ("lax"),("whale");
SELECT * FROM animals;

Что вернет:

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
+----+---------+

Вы можете получить AUTO_INCREMENT ключ с помощью функции SQL LAST_INSERT_ID() или с помощью функции mysql_insert_id() интерфейса C.

Для многострочной вставки, LAST_INSERT_ID()/mysql_insert_id() на самом деле вернут AUTO_INCREMENT значение для первой вставленной записи. Это сделано для того, чтобы многострочные вставки можно было повторить на других серверах.

В таблицах MyISAM и BDB можно определить AUTO_INCREMENT для вторичного столбца составного ключа. В этом случае значение, генерируемое для автоинкрементного столбца, вычисляется как MAX(auto_increment_column)+1) WHERE prefix=given-prefix. Столбец с атрибутом AUTO_INCREMENT удобно использовать, когда данные нужно помещать в упорядоченные группы.

CREATE TABLE animals (
 grp ENUM('fish','mammal','bird') NOT NULL,
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (grp,id)
 );
INSERT INTO animals (grp,name) VALUES("mammal","dog"),("mammal","cat"),
  ("bird","penguin"),("fish","lax"),("mammal","whale");
SELECT * FROM animals ORDER BY grp,id;

Что вернет:

+--------+----+---------+
| grp    | id | name    |
+--------+----+---------+
| fish   |  1 | lax     |
| mammal |  1 | dog     |
| mammal |  2 | cat     |
| mammal |  3 | whale   |
| bird   |  1 | penguin |
+--------+----+---------+

Обратите внимание, что в этом случае значение AUTO_INCREMENT будет использоваться повторно, если в какой-либо группе удаляется строка, содержащая наибольшее значение AUTO_INCREMENT.


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 2. Установка MySQL Начало Книги Глава 4. Администрирование баз данных


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru