草庐IT

Auto-generated

全部标签

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

PHP & MySQL : Do I store the Balance column or generate it dynamically whenever the application needs it?

我已经拥有的:在我的应用程序中,我有Credit和Debit列。对于表中的两列,我使用列类型作为Decimal8,2,默认值为0.00。当用户记入贷方时,例如50美元,贷方列的值为50.00,借方列的值为0.00。我想要实现的目标:现在我还想在第三列中显示一笔交易的余额,该列与前端的“借方”列相邻。那么我是否创建一个名为Balance的新列,列类型为Decimal8,2,默认值为0.00,并在我的代码中将Balance填充为(credit-debit)?或者我是否在每次用户访问此页面时动态计算余额值?哪种方法最好,为什么?最近的交易首先显示。这是我希望我的前端如何工作/看起来如何的示例

MySql upsert 和 auto-increment 导致 gaps

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

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。仍然是同样的错误。更新

Atcoder Beginner Contest 324 G Generate Arrays 题解-Treap

为了更好的阅读体验,请点击这里题目链接套上平衡树板子就能做的很快的题,然后因为是指针存树,因此交换只需要把序列大小较小的挨个拿出来插到相应的地方即可。复杂度\(O(N\log^2N)\)。但是一定要记住不可以直接使用std::swap交换包含带有指针的类的实例(如代码中的Treap类)!原因在于在std::swap函数中涉及了调用析构函数来析构用于承载交换的中间变量,如果你没写析构函数释放空间还好,如果写了那么它会把中间变量中的指针(从正常指针复制)指向的空间给释放掉!为了避免这种情况,因此写一个成员函数用于交换。#includeusingnamespacestd;typedeflonglon

mysql - 重置 AUTO_INCREMENT 不起作用

我在MySQL中有一个名为Person的表。有一列id具有UNIQUE和AUTO_INCREMENT属性以及一个主键。我想重置id的计数器,以便它从1重新开始。我使用了以下SQL语句:ALTERTABLEPersonAUTO_INCREMENT=1;但是在我应用此更改后,id仍然从我最后的位置(130)开始,而不是从1开始。那么为什么此重置不起作用? 最佳答案 使用TRUNCATETABLE因为这将重置自动增量来自documentation...从MySQL5.0.13开始,无论是否有外键约束,AUTO_INCREMENT计数器都会

mysql - 为什么 auto_incremnt 列在插入语句失败后增加它的值

这个问题在这里已经有了答案:WhydoesMySQLautoincrementincreaseonfailedinserts?(4个答案)关闭9年前。我正在使用MySQL。我创建了两个新表。在Employees表中插入一个新行后,我故意尝试在Orders表中插入一个新行,其引用在Employees表中不存在(我知道它会产生错误)。之后,当我尝试在Orders表中插入一个新行时,其引用存在于Employees表中,它执行成功但现在第一行Orders表的id为2。为什么即使第一个插入语句失败它也会增加CREATETABLEEmployees(EmpIDSMALLINTNOTNULLAUTO

MySQL - 如何永久设置 auto_increment_increment,直到最后一次服务器重启?

是否可以设置MySQLauto_increment_increment使其在服务器重启后仍然存在?目前我是这样设置的:SET@@auto_increment_increment=2;但是当我:sudoservicemysqlrestart并返回到默认值1。我在AWS上,我希望能够尽可能轻松地处理可能的世界末日错误:通过从AMI设置一个新实例。我希望它在启动时立即准备好服务,并避免手动设置auto_increment_increment值之类的事情。 最佳答案 在my.ini或my.cnf中设置[mysqld]auto_increme

mysql - mysql中的AUTO_INCREMENT可以默认签名吗?

我明白,column下面默认是signedint。idINT(6);下面指定的autoincrementcolumn是否可以默认签名?Mysql的自增列的值从1开始。idINT(6)AUTO_INCREMENTPRIMARYKEY 最佳答案 是的,您可以使用带符号的int创建一个自动递增主键。试试这个:CREATETABLEmytable(idint(6)AUTO_INCREMENTPRIMARYKEY);那么下面的查询都是有效的INSERTINTOmytablevalues();INSERTINTOmytablevalues(-1

MySQL 将列定义为具有 AUTO_INCREMENT 的 UNIQUE 而不是作为主键

我正在与一名契约(Contract)开发人员合作,他开始在没有定义主键的情况下创建表(MySQL)。相反,他定义了一个带有UNIQUE约束和AUTO_INCREMENT的列。我以前从未见过这样做,所以我想了解以这种方式定义表的含义。一个缺点是无法在需要时创建外键。以这种方式创建表还有其他一些影响,无论好坏。也许我在这里漏掉了一个概念…… 最佳答案 在没有显式主键的情况下定义MySQL是一个非常非常糟糕的主意。如果缺少PK,MySQL将创建一个隐式(但非常真实)整数自增主键。此PK将包含在InnoDB中的每个辅助键中,并将确定您在My