Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Alex Mikhajlichenko                  2:5020/400     21 Feb 2001  13:35:47
 To : All
 Subject : Re: mySQL вопрос (наверное дурацкий)
 -------------------------------------------------------------------------------- 
 
  21-Feb-01 08:28 Vova Aksionov (fraks@mail.nsk.ru) wrote :
 
 >>LAST_INSERT_ID([expr])
 >>
 >>Returns the last automatically-generated value that was inserted into an
 >>AUTO_INCREMENT column.
 
 > Если эта штука действует вне контекста транзакции, а именно так мне и
 > представляется, то эффект аналогичен select max(), только побыстрее но
 > с теми же недостатками.
 > Если в контексте - это то что нужно.
 
 > Может я несколько не прав на счет транзакции но смысл такой - я должен
 > быть уверен что это Я вставлял эту запись, ID которой выдается. Если
 > такой уверенности не гарантируется - то см. выше.
 
 Согласно документации, эта штука работает в контексте текущей коннекции.
 И это действительно так. То есть это - действительно
 работоспособное средство работы с последней вставленной
 записью. Hижеприведенное грандиозное шоу демонстрирует это:
 Свыше дана пустая таблица:
 
 create table test1 (id int not null auto_increment primary key);
 
 ** Со своей консоли заходит ленивый User 1 *************
 
 mysql> select * from test1;
 
 Empty set (0.00 sec)                           - хм, действительно пусто
 
 mysql> insert into test1 (id) values (NULL);   - надо бы вставить!
 
 Query OK, 1 row affected (0.04 sec)
 
 mysql> select * from test1;                    - проверим
 
 +----+
 | id |
 +----+
 |  1 |
 +----+
 1 row in set (0.09 sec)               - действительно что-то появилось
 
 mysql> select LAST_INSERT_ID();       - а что собственно мы вставили?
 
 +------------------+
 | last_insert_id() |
 +------------------+
 |                1 |
 +------------------+
 1 row in set (0.00 sec)               - сомнений быть не может, id=1
 Ленивый User1 пошел пить кофе, попутно замышляя что-то недоброе
 по отношению к вставленной записи. Она просто из головы не выходит!
 Hадо будет еще к ней вернуться...
 ** С другой консоли заходит шустрый User 2 ***************
 mysql> select * from test1;
 
 +----+
 | id |
 +----+
 |  1 |
 +----+
 1 row in set (0.00 sec)                     - здесь были люди!
 
 mysql> insert into test1 (id) values(NULL); - не проходите мимо!
 
 Query OK, 1 row affected (0.00 sec)
 
 mysql> insert into test1 (id) values(NULL); - оставьте след в жизни!
 
 Query OK, 1 row affected (0.15 sec)
 
 mysql> insert into test1 (id) values(NULL);  - вот  все удивятся!
 
 Query OK, 1 row affected (0.00 sec)
 
 mysql> select * from test1;                  - вот какой я молодец!
 
 +----+
 | id |
 +----+
 |  1 |
 |  2 |
 |  3 |
 |  4 |
 +----+
 4 rows in set (0.07 sec)
 
 mysql> select LAST_INSERT_ID(); - последней я вставил запись 4
 
 +------------------+
 | last_insert_id() |
 +------------------+
 |                4 |
 +------------------+
 1 row in set (0.20 sec)
 ** вернулся к своей консоли User 1 *************
 
 mysql> select * from test1;
 
 +----+
 | id |
 +----+  - ой сколько записей появилось
 |  1 |  (изоляция транзакций отсутствует
 |  2 |   по крайней мере в предпоследней версии 3.22
 |  3 |   в новой стабильной 3.23 они что-то хвастались про транзакции
 |  4 |   но я еще не смотрел)
 +----+
 4 rows in set (0.00 sec)
 
 mysql> select LAST_INSERT_ID(); - вернемся к нашим баранам
 
 +------------------+
 | last_insert_id() |
 +------------------+
 |                1 | - это тебя я вставил!!!!
 +------------------+
 1 row in set (0.00 sec)
 --
 *                                                   Alexey Mikhajlichenko
 Вначале было Слово , и Слово было два Байта.        alex@rtax.sumy.ua
 --- ifmail v.2.15dev5
  * Origin: Regional Tax Administration (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mySQL вопрос (наверное дурацкий)   Alexander Bolotnov   16 Feb 2001 19:22:31 
 mySQL вопрос (наверное дурацкий)   Konstantin Osipov   18 Feb 2001 17:04:14 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   19 Feb 2001 09:52:32 
 mySQL вопрос (наверное дурацкий)   Alexander Bolotnov   20 Feb 2001 13:59:18 
 Re: mySQL вопрос (наверное дурацкий)   Alex Mikhajlichenko   21 Feb 2001 11:41:57 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 12:28:47 
 mySQL вопрос (наверное дурацкий)   Mita Mikheev   21 Feb 2001 18:19:53 
 Re: mySQL вопрос (наверное дурацкий)   Alex Mikhajlichenko   21 Feb 2001 13:35:47 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 15:39:40 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 10:45:00 
 mySQL вопрос (наверное дурацкий)   Mita Mikheev   20 Feb 2001 11:39:52 
Архивное /su.dbms.sql/65139b5f0319.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional