草庐IT

duplicate

全部标签

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 INSERT/UPDATE

我可能误解了如何使用ONDUPLICATEKEY语法,或者我的数据库结构需要一些工作,但这里是。我有一个表(bookings-meta),它表示与另一个表(bookings)关联的元数据,bookings表中的不同行在另一个表中可能有也可能没有与它们关联的特定元数据。bookings-meta表有以下列,meta_id(主键)、booking_id、key和value。根据我的理解,要使用ONDUPLICATEKEY我需要知道在这种情况下是什么meta_id,通常情况并非如此,我只是尝试使用booking_id将键值对推送到表中,因此如果特定键存在,则将其替换,否则将其插入。目前我有一

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

java - hibernate 异常 : Duplicate entry for key 'PRIMARY'

我的数据库中有这些(简化的)表我已经用这些(简化的)两个类映射了表格公司@EntitypublicclassCompany{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;privateStringname;@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.PERSIST)@JoinTable(name="company_employee",joinColumns={@JoinColumn(name="company_id")},inverseJoi

mysql - nodejs mysql bulk INSERT on DUPLICATE KEY UPDATE

我试图用一个mysql语句插入大约1000行,如果键已经存在则更新该行。我在nodejs中使用this执行此操作模块。我的代码目前看起来像这样:this.conn.query("INSERTINTOsummonersVALUES?"+"ONDUPLICATEKEYUPDATEname=VALUES(name),rank=VALUES(rank),points=VALUES(points),satisfyCriteria=VALUES(satisfyCriteria),priority=VALUES(priority),"+"recentlyChecked=VALUES(recently

php - mysql insert ignore, replace or update on duplicate - 插入了吗?

我正在使用php将一行“插入忽略”到我的数据库中。有没有办法找出是否插入了一行?代码如下所示:if($stmt=$mysqli->prepare('INSERTIGNOREINTOmy_table(key_a,key_b)VALUES(?,?)')){$stmt->bind_param('ss','hello','world');$stmt->execute();$stmt->close();}谢谢大家! 最佳答案 像这样尝试:if($stmt->execute()){echo"Success";}else{echo"Error";