LINUX.ORG.RU

Ответ на: комментарий от UVV

нет оно оно тебе вернет ID записи которую ты последней вставил, тоесть если вызовешь сразу после INSERT и получишь адишник.

branicki
()
Ответ на: комментарий от Pi

Нет. Это в пределах конекшена.

А зачастую можно просто сделать скажем: select * from table 1 oder by id desc limit 1

Будет последняя запись, при условии что поле id - автоинкремент.

roller ★★★
()
Ответ на: комментарий от roller

>А зачастую можно просто сделать скажем: select * from table 1 oder by id desc limit 1

мне кажется это какойто криминальный способ ведь может так получится что между твоим INSERT и SELECT другой юзер данные вставит.

branicki
()
Ответ на: комментарий от Pi

> что такое коннекшен?

это ты издеваешься?

коннекшн -- это от mysql_connect() и далее, до обрыва соединения.

dmiceman ★★★★★
()
Ответ на: комментарий от Teak

>Предлагаю сходить в гугель и ознакомиться с умным словом "race condition". :)

При чем тут race condition? Мой вариант выдаст последнюю запись на момент запроса.

>мне кажется это какойто криминальный способ ведь может так получится что между твоим INSERT и SELECT другой юзер данные вставит.

Про "свой" инсерт в условии ничего не говорится.

Но именно для этого случая есть last_insert_id()

>что такое коннекшен? я не знаю такого. я знаю о транзакциях и race condition'aх.

http://www.tizag.com/mysqlTutorial/mysqlconnection.php.

Первый абзац. Тут про пхп, но это неважно. Вообще на коннекшен достаточно много завязанно, например character set.

roller ★★★
()
Ответ на: комментарий от Teak

> Предлагаю сходить в гугель и ознакомиться с умным словом "race condition". :)

Ты об этом?
http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8...
Очень интересно, спасибо.
Но всё-таки можно ли как-нибудь решить проблему?
Человек хочет следующего:
Допустим, он вводит запись, а некоторые поля в записи остаются практически неизменными (дата, вид и т.д.). Он хочет, чтобы при создании новой записи эти значения брались из предыдущей.
Я в правильном направлении ищу решение (в смысле в направлении sql)?

UVV ★★★★★
() автор топика
Ответ на: комментарий от UVV

>Допустим, он вводит запись, а некоторые поля в записи остаются практически неизменными (дата, вид и т.д.). Он хочет, чтобы при создании новой записи эти значения брались из предыдущей. Я в правильном направлении ищу решение (в смысле в направлении sql)?

insert into tbl1(val1, val2) select 'new value', val2 from tbl1 where pkfield = last_insert_id()

roller ★★★
()
Ответ на: комментарий от Pi

Имеется ввиду на этапе ввода, чтобы человек мог в случае необходимости поправить эти значения.

UVV ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.