jjzjj

increment

全部标签

mysql - 在 Rails 中更新计数器,这是否存在并发问题?

假设我允许人们对项目进行投票,我正在这样做:bid=Bid.new..bid.save!item.total_bids+=1item.save!如果多人同时对一件元素出价,这不会有问题吗? 最佳答案 绝对有并发问题。Rails提供了increment_counter来处理这个:Item.increment_counter(:total_bids,item.id)这会在数据库上运行SQL:UPDATEitemsSETtotal_bids=total_bids+1WHEREid=x详情请看这里:http://api.rubyonrail

mysql - 如何从 Hibernate 中插入的记录中获取 AUTO_INCREMENT ID?

我正在使用Hibernate3.0和mysql作为数据库,在我项目的一个场景中,我必须插入一条具有默认值的记录。插入成功后,我必须检索插入记录的auto_generatedid,以便我可以将其用于下一次查询?可能有多个记录被插入到同一个表中。那么有什么安全的方法可以检索AUTO_GENERATEDID吗? 最佳答案 也许是这样的?session.persist(myEntity);myEntity.getId(); 关于mysql-如何从Hibernate中插入的记录中获取AUTO_IN

PHP - 在数据库中存储页面 View 的最佳实践

我可以知道在数据库中存储页面浏览量的最佳做法是什么吗?每次加载页面时更新综合浏览量的成本是否很高?在更新综合浏览量时是否存在任何可能的错误/威胁,同时其他人正在修改同一行的数据?例如表-项目ID姓名描述页面浏览量我知道这可能不是一个很大的问题,它可以应用于一些经常更新的其他数据,想知道最好的方法是什么。我想到的可能情况是,如果有很多页面同时运行。会不会有任何性能问题?请原谅我的英语,非常感谢。 最佳答案 最好的方法是为每个View在表中写入一个新行,而不是保持滚动计数,这可能会导致大型系统出现锁定问题。为了获得额外的性能,您可以使用

mysql - 从 MySQL 中的非 AUTO_INCREMENT 列获取最后插入的 ID

LAST_INSERT_ID()从具有AUTO_INCREMENT属性的列中返回最后插入的ID。首先,有什么方法可以在没有AUTO_INCREMENT属性的列中获取最后插入的ID。如果是,我如何获取最后插入的ID?任何想法都会很棒。 最佳答案 不总是保证,但您可以使用MAX():SELECTMAX(ID)FROMYourTable这可能无法保证的原因是,如果您同时运行多个事务,这可能会选择不正确的ID...类似地,带LIMIT的ORDERBY:SELECTIDFROMYourTableORDERBYIDDescLimit1

mysql - 仅在具有一个 auto_increment 列的表中插入

可以在只有一列的表中插入,并且该列是主列和auto_increment。正是我想要的是将id增加1并将其写入表......是否可以不选择最大值并将其增加1而不是插入..我认为直接插入只是增加值 最佳答案 以下语句都会使MySQL中的自增列产生新值:INSERTINTOFoo(id)VALUES(0);INSERTINTOFoo(id)VALUES('');--becausetheintegervalueof''iszeroINSERTINTOFoo(id)VALUES(NULL);INSERTINTOFoo(id)VALUES(DE

mysql - 修改 AUTO_INCREMENT PRIMARY KEY 进行分区

我需要在时态数据之间对MySQL表进行分区(下表中的字段开始)。CREATETABLE`table1`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`fk_id`bigint(20)NOTNULL,`begin`bigint(20)NOTNULL,PRIMARYKEY(`id`),KEY`FK1E57078DB20EC268`(`fk_id`))ENGINE=MyISAMAUTO_INCREMENT=10443288DEFAULTCHARSET=latin1当我尝试这样划分时:altertabletable1partitionbyrange(begin)(P

mysql - 如何使用 Eloquent 在 Laravel 中设置 AUTO_INCREMENT?

我正在处理一个应用程序,我的雇主希望用户表中的ID应该从100,000而不是1开始。如何实现?它是SchemaBuilder本身的参数吗?或者我必须在MySQL中设置一些东西吗? 最佳答案 您可以使用SQL本身来执行此操作。ALTERTABLEAUTO_INCREMENT=100000;.或者像here那样做并使用未经准备的语句;$statement="ALTERTABLEMY_TABLEAUTO_INCREMENT=100000;";DB::unprepared($statement);或DB::update("ALTERTABL

mysql - 通过选择结果更改 AUTO_INCREMENT 值

基本上我想要的是以下代码的工作版本:ALTERTABLEtable_nameAUTO_INCREMENT=(SELECT`AUTO_INCREMENT`FROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='database_name'ANDTABLE_NAME='another_table_name');错误:1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'AUTO

mysql - 计算 auto_increment 与其最大值的接近程度的简便方法?

所以昨天我们有一个表,它有一个达到最大值的smallint的auto_incrementPK。我们不得不在紧急情况下更改表格,这绝对不是我们喜欢的方式。是否有一种简单的方法来报告我们使用的每个auto_increment字段与其最大值的接近程度?我能想到的最好方法是执行SHOWCREATETABLE语句,解析出自动递增列的大小,然后将其与表的AUTO_INCREMENT值进行比较。另一方面,鉴于架构不会经常更改,我是否应该存储有关列最大值的信息并使用SHOWTABLESTATUS获取当前的AUTO_INCREMENT? 最佳答案 我

mysql - 使用子查询mysql在同一个表中更改auto_increment

我正在使用mysql。我有一个带有auto_increment计数器集的数据库表。现在由于一项要求,我需要保留100个起始ID,并从101开始移动所有现有记录,因此当前ID1将变为101,ID2将变为102,依此类推。我可以将记录移动到101,但问题是如何将auto_increment计数器更改为max(id)+1。我的主要限制是我需要在单个sql语句中完成。我无法使用@counter保存该值并在以后使用它。我尝试使用下面的查询ALTERTABLEroleAUTO_INCREMENT=(SELECTrd.counterFROM(SELECT(MAX(id)+1)AScounterFRO