есть ли опция на Ruby, как mysql_insert_id () для PHP? - PullRequest
2 голосов
/ 25 июля 2010

Поддерживает ли ruby ​​способ получения идентификатора для последней вставленной строки, похожий на метод mysql_insert_id() php для баз данных mysql?

Ответы [ 3 ]

9 голосов
/ 26 июля 2010

Это почти то же самое в ruby, за исключением того, что соединение mysql обернуто объектом и библиотека доступна через rubygems (gem install mysql)

require 'mysql'
db = Mysql.connect(hostname, username, password, databasename)
db.execute("INSERT INTO mytable VALUES 1,2,3");
db.insert_id
# => last inserted id

см. http://www.tmtm.org/en/mysql/ruby/

Обычно вы этого не делаете и полагаетесь на библиотеку абстракций sql, такую ​​как ActieRecord, DataMapper, Sequel, DBI, ... во всех них этот метод доступен, но в разных модулях.

3 голосов
/ 25 июля 2010

вы всегда можете вместо этого использовать SELECT last_insert_id() запрос.

0 голосов
/ 25 июля 2010

Зачем вам это нужно?Скорее всего, вы не используете ActiveRecord на полную мощность.Однако вы можете получить доступ к идентификатору созданной записи, просто набрав @record.id.

. Я бы рекомендовал не использовать простой синтаксис SQL в Rails ...

Обновление: Извините, только что понял, что вы на самом деле не можете использовать ActiveRecord.Конечно, тогда возможно использовать предложенный синтаксис SELECT (и это правильный способ получить это значение).Лично я все же предпочел бы использовать ActiveRecord.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...