Mysql получает последний идентификатор конкретной таблицы
Мне нужно получить последний идентификатор вставки из определенной вставленной таблицы?.
Допустим, у меня есть этот код:
INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah2 (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah3 (test1, test 2, lastid) VALUES ('test1', 'test2', last id of blahblah);
Как получить идентификатор вставки таблицы blahblah в таблице blahblah3?
LAST_INSERT_ID() возвращает только последний идентификатор вставки
С уважением, Саймон:)
Ответы
Ответ 1
Вы можете использовать LAST_INSERT_ID().
Попробуйте следующее:
INSERT INTO blahblah (test1, test2) VALUES ('test1', 'test2');
SELECT LAST_INSERT_ID() INTO @blahblah;
INSERT INTO blahblah2 (test1, test2) VALUES ('test1', 'test2');
INSERT INTO blahblah3 (test1, test2, lastid) VALUES ('test1', 'test2', @blahblah);
Ответ 2
Это то, что вы ищете?
SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
Ответ 3
Если вы хотите сделать это в одном заявлении, используйте:
INSERT INTO blahblah3 (test1, test2, lastid)
VALUES ('test1', 'test2', (select MAX(id) FROM blahblah));
Таким образом, вам не нужно заранее сохранять какие-либо переменные, которые гарантируют, что вы получите последний идентификатор в тот момент.
Ответ 4
Вы можете использовать функцию mysql_insert_id();
, чтобы получить быстрый ответ.
Но если вы используете сайт с интенсивным трафиком, есть шансы на точные результаты.
Ответ 5
Вы можете использовать LAST_INSERT_ID().
INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
//this query will return id. Save it in one variable
select LAST_INSERT_ID()
Короче говоря, сохраните последний идентификатор вставки в одной переменной, а затем используйте его в blahblah3
Ответ 6
вы также можете найти последний id по запросу в codeigniter As
$this->db->order_by('column name',"desc");
$this->db->limit(1);
$id= $this->db->get('table name');