|
Программирование >> Создание клиентов mysql
Последовательности Последовательность - это специальная конструкция, доступная в некоторых реляционных СУБД, включая 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
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |