|
|
|
|
|
для: dima_s_d_s
(14.01.2007 в 21:18)
| | Попробуйте так:
select auto_increment+1 from information_schema.tables where table_name='имя таблицы' and table_schema='имя БД';
|
В данном случае получаем значение инкрементированного поля для следующей записи. | |
|
|
|
|
|
|
|
для: Саня
(14.01.2007 в 23:29)
| | >А чем плох вариант с LOCK TABLES?
Он не плох. Он не нужен, на мой взгляд.
Собственно, законченного варианта с ним я не увидел.
>И что такое секвенция в данном контексте?
В данном контексте- отдельная таблица, из которой достается свежий id.
А вообще - объект БД, позволяющий получать последовательные номера. Без повторов. | |
|
|
|
|
|
|
|
для: Razputin
(15.01.2007 в 10:45)
| | Не выйдет.
А если записи с максимальным номером уже кто-то удалял? | |
|
|
|
|
|
|
|
для: Саня
(14.01.2007 в 23:26)
| |
function next_insert_Id() {
$query = mysql_query("SELECT MAX(id) AS maxId FROM table");
$maxId = mysql_fetch_assoc($query);
$maxId = $maxId['maxId']+1;
return $maxId;
}
|
Запрос получает максимальный ID в вашей таблице. Естественно предположить, что следующий ID будет на 1цу больше (Если это калонка AUTO_INCREMENT). Смотрите пример. | |
|
|
|
|
|
|
|
для: Unkind
(14.01.2007 в 23:01)
| | А вариант запуска двух скриптов не рассматривали? | |
|
|
|
|
|
|
|
для: Sergey89
(14.01.2007 в 21:30)
| | >>SELECT MAX(id) FROM table;
>это совсем не то
Храните идентификатор id в отдельной таблице... правда без транзакций тут тоже ничего хорошего не получится... | |
|
|
|
|
|
|
|
для: Trianon
(14.01.2007 в 23:26)
| | А чем плох вариант с LOCK TABLES?
И что такое секвенция в данном контексте? | |
|
|
|
|
|
|
|
для: Саня
(14.01.2007 в 23:20)
| | для решения данной задачи можно вовсе отказаться от транкзации. | |
|
|
|
|
|
|
|
для: Саня
(14.01.2007 в 23:20)
| | Sergey89 ответил (14.01.2007 в 21:33) : Через INSERT SELECT UPDATE/INSERT
В конце концов, на пустой таблице с единственным autoincrement полем можно даже подобие секвенции организовать. | |
|
|
|
|
|
|
|
для: Unkind
(14.01.2007 в 22:32)
| | В таком случае получаю 1, хотя в таблице есть три записи. И сделаны они были до запуска скрипта. | |
|
|
|
|