草庐IT

duplicate-content-question

全部标签

mysql - 即使抛出异常 DUPLICATE KEY 或事务被回滚,auto_increment 值也会递增

我有一个表-id是auto_increment和一个email列被定义为UNIQUE.考虑将auto_increment设置为1。在我的存储过程中,当我INSERT具有唯一电子邮件ID的新行时,auto_increment列会递增。正确的行为。现在,当我尝试再次INSERT同一封电子邮件时,UNIQUEKEY被违反了。我检查它并执行ROLLBACK。但是auto_increment现在设置为2。为什么?在INSERT的第三次尝试中,这次使用唯一的电子邮件插入行,但是id字段的值为3。不好。有什么方法可以将值减回到2。 最佳答案 检查

mysql - ON DUPLICATE KEY UPDATE 导致外键约束错误

我搜索了StackOverflow,但找不到我的具体问题的答案。最近我非常喜欢用列表更新记录,使用“INSERTINTO...ONDUPLICATEKEYUPDATE”。但是,我遇到了以下查询的问题:INSERTINTOitens(prod_id,qtd)VALUES(410,1),(442,-1)ONDUPLICATEKEYUPDATEqtd=qtd+VALUES(qtd)这导致错误:“无法添加或更新子行:外键约束失败。”这是有问题的表的结构。“carrinho_id”是一个外键。我对我没有尝试使用外键做任何事情这一事实感到困惑。我只是想更新数量。CREATETABLEIFNOTEX

mysql - INSERT ... ON DUPLICATE KEY UPDATE(要比较的两个键)

我想做的是增加第4列的值,如果它不存在,当一行有col0=valuecol0ANDcol2=valuecol2在表中。否则,我当然想插入该行。INSERTINTOtablename(col0,col1,col2,col3)VALUES(valuecol0,valuecol1,valuecol2,valuecol3)ONDUPLICATEKEYUPDATEcol3=col3+VALUES(col3);无论如何,我不知道应该如何在表中设置索引,我阅读了文档中的页面here但这没什么用。所以我尝试了所有四种可能的组合,但没有一个有效!我哪里失败了? 最佳答案

java - Java : How to Differ Inserted/Updated/NoChange states 上的 MySQL "INSERT ... ON DUPLICATE KEY UPDATE"

我对MySQL的INSERT...ONDUPLICATEKEYUPDATE的返回值感到困惑陈述。当我在MySQL客户端(mysql终端、phpmyadmin或MySQLWorkbench)上尝试时,执行结果为以下之一:1:如果插入新记录(即没有重复键)。2:如果现有记录在重复键的情况下更新。0:如果执行了更新但没有更改列值。这些结果是有道理的。但是,当我在Java中执行相同的查询时(使用mysql-connector5.1.34),JDBC的executeUpdate方法在两种情况下都返回1插入且无变化,2如果更新成功。更新无效时不返回0。这是MySQLJDBC驱动程序的错误吗?如果是

mysql - SELECT Duplicate/Repeating values with count N 没有 COUNT 或 GROUP BY

假设我有一张人员ID(1-8)和人员角色(1-4)的表:CREATETABLEpersonRole(PersonIdintNOTNULL,RoleIdintNOTNULL);INSERTINTOpersonRoleVALUES(1,1),(1,2),(2,1),(2,3),(3,3),(4,3),(1,4),(5,2),(6,1),(7,1),(7,4),(8,1),(8,2),(8,4);我的目标是选择具有3个或更多角色的人员ID,角色具体为1、2和4。这是我的第一个解决方案:SELECTPersonIdFROMpersonRoleWHERERoleIDin(1,2,4)GROUPB

mysql - Django MySQL 错误(1146、 "Table ' db_name.django_content_type' 不存在”)

我遇到了错误django.db.utils.ProgrammingError:(1146,"Table'db_name.django_content_type'doesn'texist")当我尝试使用我第一次部署在生产服务器上的新数据库对Django项目进行初始迁移时。我怀疑问题可能是因为其中一个应用程序的目录中充满了来自SQLite3开发环境的旧迁移;我清除了那些但没有帮助。我还搜索并找到了对多个数据库有问题的人的引用,但我只有一个。Django版本是1.11.6onpython3.5.4,mysqlclient1.3.12 最佳答案

mysql - INSERT INTO values (...) ON DUPLICATE KEY UPDATE 具有多个值

这行得通吗?(我没有可用于测试的mysql服务器>.我的表:myid:整数/主键我的数据:文本INSERTINTOmytableVALUES(1,"newrow"),(2,"brandnewrow"),(3,"yupanothernewrow"),[.....moreandmorecoma-separatedparentheseswithvalues],(1000,"guesswhat?yesnewrow")ONDUPLICATEKEYUPDATEmydata="dang,thisrowalreadyexists!"; 最佳答案 是

php - MySQL ON DUPLICATE KEY UPDATE语法错误

我想知道是否有人能发现我的sql语句中的任何错误。如果尚不存在,我希望它在我的表中插入一条新记录。如果它确实存在,那么只需更新它。我在日期字段中的主键。这是我在php中出现的语句以及我遇到的错误:INSERTINTOExtraStats(date,supportStaff,startEmails,endEmails,emailsAnswered)VALUES('$startDate','$supportStaff','$startEmail','$endEmail','$emailAnswered')ONDUPLICATEKEYUPDATE(supportStaff,startEmai

java - 插入 "Duplicate entry ... for key PRIMARY"和 "Krakow"时为 "Kraków"

我有一个实体LocationsCoordinates用于在具有唯一位置和国家(制作复合主键)的数据库中保存位置坐标,其定义如下:@Entity@Table(name="LOCATIONS_COORDINATES")@IdClass(LocationsCoordinatesPK.class)publicclassLocationsCoordinatesimplementsSerializable{privatestaticfinallongserialVersionUID=-4580217081464519853L;@Id@Column(name="LOCATION")Stringloc

PHP + MYSQL on Duplicate KEY 仍然增加INDEX KEY

我的table有这种风格:ID-EMAIL-VERSION-LASTUPDATE其中id=是自动递增和主要的:并且电子邮件是唯一的所以每次有人使用我的应用程序时,它都会获取用户电子邮件并尝试插入,如果电子邮件已经存在,它会将行更新为$version和$lastupdate的新值几乎100%,它已经完美地更新了行,问题是当它做UPDATE时,仍然增加自增id,所以下一个INSERT不会是lastID加一,而是另一个数字示例:ID-EMAIL-VERSION-LASTUPDATE-----------------------------------1-test1@...-1.0-curre