Mysql получает последний идентификатор конкретной таблицы - программирование
Подтвердить что ты не робот

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() возвращает только последний идентификатор вставки

С уважением, Саймон:)

4b9b3361

Ответ 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');