Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344

Получить последний созданный id в таблице

30.05.2015, 17:14. Показов 5445. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, мне нужно получить последний созданный id в таблице, узнал что есть LAST_INSERT_ID(), якобы вернёт то, что мне нужно, но не нашел НИ ОДНОГО пример используется эта функция ...

Можете показать как она используется, а конкретно применение её, чтоб получить id из конкретной таблицы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2015, 17:14
Ответы с готовыми решениями:

Как получить последний созданный cookie без перезапуска скрипта?
Есть страница-скрипт(script.php), которая может быть посещена с одним из трех GET-параметров: ref1, ref2 или ref3. Каждый раз скрипт...

Отобрать последний созданный архив
Доброго времени суток! Подскажите как отобрать последний созданный архив из заданного каталога для последующего его копирования. Архив...

Открыть последний созданный лог
в форме, с помощью кнопки, открыть последний созданный лог, с именем такого формата ShellExecute (Form1.Handle, nil, '221215_171518.log',...

12
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 18:01
SQL
1
2
3
4
5
6
7
8
9
CREATE TABLE QWE
(
id INT NOT NULL AUTO_INCREMENT,
num INT,
PRIMARY KEY QWE(id)
)
 
INSERT INTO qwe(num) VALUES(6);
SELECT LAST_INSERT_ID();
Вернёт последний id. Походу, поле id обязательно должно быть auto_increment, и вроде как primary key. Ну во всяком случае так точно работает)
0
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 18:54  [ТС]
Я не понимаю, у меня это код абсолютно никак не подсвечивается, сайт сразу ломается и просто пустота, или я может мега дурак ...
0
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 19:10
С чем работаешь? Чем БД управляешь?

Добавлено через 6 минут
Скинь скрипты, гляну
0
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 20:25  [ТС]
PHP
1
2
3
4
5
6
7
$gal = mysql_query("SELECT id FROM gallery ORDER BY id DESC ");
    $gal = mysql_fetch_array($gal); 
    $nomer = ($gal['id'])+1;
    
        $target_dir = 'Public/Gallery/';
        $target_file = $target_dir .$nomer.'.png';
// далее загрузка изображения
Если вкратце, я загружаю изображение на сайт, и название изображение = его id. Но определить id не записав сначала в базу незя, то есть можно, но уже импровизируя. Я сделал как выше, я беру id последней записи и прибавляю +1, то есть id следующей записи. Но если удалить последнюю запись из БД получится разница, была 56, 57, 58. Удалил 58, следующая будет 59, а по моей формуле, 58. Вот и узнал про ту функцию.

Добавлено через 3 минуты
Мне нужно получить самое последнее id в общем, но никак не могу использовать это LAST_INSERT_ID(); вообще не понимаю как она работает.
0
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 21:50
Я полагаю, что этот столбец, в котором хранятся id картинок, у тебя не auto_increment. Да?
1
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 21:58  [ТС]
Неа, у меня не хранится id картинки, я просто его сравниваю и вынаю, если пост с id 50, у него в папке картинка с название 50.png
Есть запись, и только у неё id и там auto_increment стоит
0
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 22:05
Ты можешь попробовать написать всё в одно запросе.
Сначала insert into post values("тря-ля-ля"); select LAST_INSERT_ID();
И просмотреть ответ. Там должен быть id поста, который мы запилили.
Если я, конечно, понял, что тебе нужно...

Добавлено через 1 минуту
Ну а вообще, если у тебя стоит auto_increment, то после удаления строки всё должно работать как надо.
0
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 22:11  [ТС]
Неа, если удалить запись то не так малость:
1,2,3,4,5
Мы удаляем 5, осталось
1,2,3,4
И следующей будет не 5, а 6 уже.

Я одновременно и записываю в базу и присваиваю название картинке.
Но при этом сначала должно присвоиться название, иначе если выдаст ошибку, запись запишется, а картинка нет, считай баг, а чтобы записать название с id = записи в базе, его надо узнать, а как это сделать если я еще не записал? Вот поэтому я и хочу вынуть id последней записи и сделать +1, и присвоить такое название, что совпадёт с id записи.
0
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 22:23
demon31, аа, ну тогда понятно. Ну тут тебе LAST_INSERT_ID() не поможет, потому что он эквивалентен запросу
SQL
1
SELECT id FROM qwe ORDER BY id DESC LIMIT 1;
Ну тогда, если тебе надо записывать в бд и одновременно грузить картинку, то тебе надо добавить ещё один столбец в таблицу с id картинки(GUID). При добавлении нового поста сначала генеришь GUID и добавляешь стоку, и одновременно сохраняешь картинку с эти guid.

Но лучше конечно всё делать по очереди, сначала записать строку, а потом достать id этой записанной строки и назвать так картинку.

Лично я сделал бы как-то так...
1
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 22:31  [ТС]
Я просто читал, что LAST_INSERT_ID() якобы возвращает общее последнее id, независимо от записи, вот и думал, что оно мне поможет.

Блин, а в общем я и правда, видимо, тупил ... Хотя щас за другим компом, но лан, после проверю, спасибо.
0
 Аватар для max-max-max
3 / 3 / 1
Регистрация: 27.03.2010
Сообщений: 57
30.05.2015, 22:42
Всё верно ты читал, это я тупанул чёт. Чтобы убедиться протестил даже)

SQL
1
2
3
4
5
INSERT INTO qwe(num) VALUES(6);
SELECT LAST_INSERT_ID(); -- id = 8
DELETE FROM qwe WHERE id = 5;
INSERT INTO qwe(num) VALUES(6);
SELECT LAST_INSERT_ID(); -- id = 9
Поэтому да, я ошибся с эквивалентом.

Добавлено через 1 минуту
Но оно тебе всё равно не поможет, т.к. откуда бд узнает, из какой таблицы ты id достать хочешь, если вызывать её саму по себе?...
0
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
30.05.2015, 22:45  [ТС]
Блин, и всё же сначала надо обработать картинку, и если успех записать в базу, мне id нужен еще до того момента как я записал ...

Добавлено через 1 минуту
Да вот суть этой темы и была узнать подробности))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2015, 22:45
Помогаю со студенческими работами здесь

Последний созданный файл в папке
Добрый день. Имеется папка с архивами, собственно как узнать последний созданный архив ?

Закрашивает только последний созданный Shape
При создании фигур закраска действует только на последнюю созданную фигуру. Нужно сделать так, что при TMouseDown по созданной фигуре и...

Как определить последний созданный документ
В принципе сабж, и как определить его uind, хотелось бы чтобы это было в @функциях. Спасибо за рание

После создания нескольких PictureBox-ов, удаляется только последний созданный
Такая проблема: Когда я создал несколько PictureBox'в, удаляется только последний созданный. Как сделать так, что бы их можно было...

В сетевой папке найти самый последний созданный EXE-файл и скопировать его в локальную папку
Здравствуйте, подскажите как можно реализовать такое, есть сетевая папка в которой есть другие папки, нужно найти самый последний созданный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru