Программирование >>  Создание клиентов mysql 

1 ... 32 33 34 [ 35 ] 36 37 38 ... 201


Последовательности

Последовательность - это специальная конструкция, доступная в некоторых реляционных СУБД, включая Oracle. Она представляет собой счетчик, используемый для создания уникальных числовых идентификаторов. Текущее значение счетчика можно извлечь с помощью инструкции SELECT. Это происходит в атомарном режиме, т.е. гарантируется, что никакие два потока не получат два одинаковых идентификатора.

В MySQL уникальные идентификаторы строк лучше всего реализуются с помощью первичные четчиков. Имитация последовательностей может потребоваться при переносе приложений в MySQL. Для этого необходимо создать таблицу, состоящую из одной ячейки. Таблица будет содержать один целочисленный столбец с единствен-ны ием- начальным числом последовательности. Работа с последовательностями ведется посредством функции описанной в главе 12, Встроенные функции . Будучи вызванной без аргументов, она возвращает последнее значение счетчика, установленное путем или же самой функцией. Если вызвать функцию с аргументом, она вернетзначение аргумента.

Чтобы обновить значение счетчика последовательности, нужно вызвать функцию LAST INSERT IО , передав ей текущее значение счетчика, увеличенное на единицу. Это обновление выполняется атомарно, т.е. другие потоки не могут ему помешать. Пример работы с последовательностями показан в листинге 9.5.

mysql> CREATE TABLE seq { -> nextval INT -> );

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO seq VALUES (100); Query OK, 1 row affected (0.00 sec)

mysql> UPDATE seq

-> SET nextval = LAST INSERT ID(nextval+1) ;

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

SELECT

I 1011

1 row in set (0.00 sec)

mysql> UPDATE seq

-> SET nextval = LAST INSERT ID(nextval+1) ;

Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT LAST INSERT ID() ; + +



BOOKS-

;-SHOP com mpi

ahSKTpuHiKiK книг

Последовательности 117


He пытайтесь извлекать значение счетчика последовательности напрямую из таблицы: другой поток мог изменить это значение.





СПРАВОЧНИК MYSQL



1 ... 32 33 34 [ 35 ] 36 37 38 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика