草庐IT

auto-increment

全部标签

mysql - 向 mysql 表添加一种自动增量列

我想在mysql表中添加一列,其中的单元格将获得如下值:newColumn-----------log-00001log-00002log-00003....值log-0000x将由mysql自动创建。这类似于“自动递增”列,但带有“log-”前缀。这可能吗?谢谢 最佳答案 MySQL不会自动递增除整数以外的任何值。您不能自动递增字符串。您不能使用触发器根据自动增量值填充字符串。原因是在“之前”触发器执行时自动增量值尚未生成,并且在“之后”触发器中更改列为时已晚。另请参阅我对https://stackoverflow.com/a/2

php - MySQL 和 INT auto_increment 字段

自从我记得自己以来,我正在使用LAMP(Linux+Apache+MySQL+PHP)进行开发。但有一个问题困扰了我多年。我希望你能帮助我找到答案并指出正确的方向。这是我的挑战:比方说,我们正在创建一个社区网站,我们允许我们的用户在该网站上注册。我们存储所有用户的MySQL表将如下所示:CREATETABLE`users`(`uid`int(2)unsignedNOTNULLauto_incrementCOMMENT'UserID',`name`varchar(20)NOTNULL,`password`varchar(32)NOTNULLCOMMENT'Passwordissaveda

mysql - 将 MySQL 字段编辑为 AUTO_INCREMENT 时出错

我正在尝试通过PHP将MySQL中的字段编辑为NOTNULL和AUTO_INCREMENT。我尝试了以下路线来执行此操作,但我不断收到错误消息。知道为什么吗?$con=mysql_connect("host","user","pass");if(!$con){die('Couldnotconnect:'.mysql_error());}mysql_select_db("database_name",$con);$int="ALTERTABLE`table_name`CHANGE`column_name``column_name`INT(11)NOTNULLAUTO_INCREMENT"

mysql - 从自动递增字段mysql java中知道下一个值

我想知道自增字段的下一个值我想测试一下:selectmax(contactid)fromcontact然后我加1但我意识到它会给我一个错误举个例子如果我插入一条记录并将其删除所以如果我在字段之后插入将增加两个我怎样才能做到这一点?谢谢 最佳答案 这个问题有多种解决方案:1。(最好)停止尝试预测自动增量值这是比较典型的情况,基本上就是按照设计使用自增。这假设您实际上并不需要插入的自动增量值before。你可以做的是:DROPTABLEIFEXISTSt;CREATETABLEt(idINTUNSIGNEDNOTNULLauto_inc

mysql - 具有较大自动增量值的行是否可以比具有较小自动增量值的行出现得更快?

下面的场景是否可能?MySQL版本5.6.15CREATETABLEmy_table(idintNOTNULLAUTO_INCREMENT.data1int,data2timestamp,PRIMARYKEY(id))ENGINE=InnoDB;innodb_autoinc_lock_mode=1AUTO_INCREMENT=1010毫秒:查询A运行:INSERTINTOmy_table(data1,data2)VALUES(101,FROM_TIMESTAMP(1418501101)),(102,FROM_TIMESTAMP(1418501102)),..[200个值总计]..,(3

php - Phalcon 迁移系统中的 auto_increment

出于某种原因,迁移系统在使用auto_increment主键时表现不佳。我在监督什么吗?(我使用的是phalcon2.0.1)我有以下自动生成的迁移:classLanguagesMigration_100extendsMigration{publicfunctionup(){$this->morphTable('languages',array('columns'=>array(newColumn('id',array('type'=>Column::TYPE_INTEGER,'notNull'=>true,'autoIncrement'=>true,'size'=>11,'first

mysql - INSERT INTO table DEFAULT(key_col) 插入零?

我在tbl中有这个主键列:`id`INT(5)unsignedNOTNULLAUTO_INCREMENTPRIMARYKEY当我运行下面的查询时,插入零而不是下一个自动递增数字:INSERTINTO`tbl`(id,col1,...)VALUES(DEFAULT(id),"value1",...)有趣的是,这种行为是最近发生的,让我想知道我可能更改了哪些设置会导致这种情况。我首先考虑的是NO_AUTO_VALUE_ON_ZERO。我已将其添加到配置文件中的sql_mode,现在是这样的:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLE

MySql upsert 和 auto-increment 导致 gaps

我有一个带有自动递增主键的MySql表,似乎所有各种更新插入方法(INSERTIGNORE和ONDUPLICATEKEYUPDATE)都受到自动递增字段的影响增量,即使更新了一行但未插入。这意味着在表格中引入了间隙,我认为这是不可取的。所以问题是:如果更新插入实际上只是更新行,是否有任何方法可以在具有自动递增字段的表中更新插入记录而不自动递增该字段。在我看来,这是upsert应该的行为方式,但它似乎并非如此。 最佳答案 这个“问题”只存在于InnoDB中。这是设计使然,旨在提高并发性:另一个线程可以使用AUTO_INCREMENT,

MySQL 非主键自增

我想知道是否/如何为每个主键创建第二列自动递增:CREATETABLEtest(`id`INTEGERUNSIGNEDNOTNULL,`subId`INTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,`text`VARCHAR(45)NOTNULL,PRIMARYKEY(`id`,`subId`))ENGINE=InnoDB;不幸的是,只有当我将ID指定为主键并将subId指定为索引键(但我同时需要它们并且ID可以重复)。示例数据(我需要的):1,11,21,32,12,23,1将ID设置为主索引和subId索引的问题是subId将独立于ID递增。如何实现,甚至可

mysqldump + auto_increment 导致主键错误

我正在使用mysqldump(a)转储一个表,然后(b)将它插入到别处。当我尝试执行(b)部分时出现问题。这是我得到的错误。键“PRIMARY”的重复条目“1”现在,坚持,坚持。我知道我没有插入重复的主键....我检查了CREATETABLE语句。id字段上的auto_incremement保留为id列的最大值:AUTO_INCREMENT=45634650。我认为问题在于,如果您尝试插入id值小于auto_increment指定值的任何行,MySQL将给出此错误....无论该id是否重复。我尝试从TABLECREATE语句中手动删除AUTO_INCREMENT。仍然是同样的错误。更新