LINUX.ORG.RU

рабирал исходники pear DB/mysqi.php


0

0

наткнулся на ф-цию:

   function createSequence($seq_name)

    {

        $seqname = $this->getSequenceName($seq_name);

        $res = $this->query('CREATE TABLE ' . $seqname

                            . ' (id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,'

                            . ' PRIMARY KEY(id))');

        if (DB::isError($res)) {

            return $res;

        }

        // insert yields value 1, nextId call will generate ID 2

        return $this->query("INSERT INTO ${seqname} (id) VALUES (0)");

    }

вопрос, для чего она нужна, и если она в библиотеке, то она должно быть частенько используеться ? =)

в нормальных СУБД вместо auto_increment используются последовательности, здесь идет ее эмуляция для mysql.

Jik
()

Нужна для эмуляции Sequence в MySQL. Sequence нужны для получения уникальных ID для строк в таблице. Т.е. при добавлении записи сначала получаешь уникальное ID для таблицы, а потом вставляешь это ID.

Вообще к PEAR/DB нормальный мануал есть. Вот ответ на вопрос http://pear.php.net/manual/en/package.database.db.intro-sequences.php

Обычно в MySQL для их получения используется AUTO_INCREMENT.

zch
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.