草庐IT

drop-duplicates

全部标签

MySQL INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 增量

我在使用INSERTSELECTONDUPLICATEKEYUPDATE查询时遇到一些问题。我想执行一些操作,例如为select返回的每一行插入表中的字段增量,其中一些将需要更新同一行。设置:表格来源CREATETABLE`source`(`key`int(11)NOTNULLAUTO_INCREMENT,`data`int(11)DEFAULTNULL,`state`int(11)DEFAULTNULL,`group`int(11)DEFAULTNULL,PRIMARYKEY(`key`));表目标CREATETABLE`dest`(`dkey`int(11)NOTNULL,`dda

MySql Performance : INSERT. ..ON DUPLICATE KEY UPDATE 或 UPDATE & ROW_COUNT

我查询大部分时间都会更新现有记录。但是,我需要检查此记录是否存在,如果不存在,我应该创建它。通常我会使用INSERT...ONDUPLICATEKEYUPDAT,但由于只需要插入几个查询,我正在考虑执行UPDATE并稍后检查如果返回的ROW_COUNT()为零,并且在这种情况下执行INSERT。什么会给我最好的表现? 最佳答案 MySQL有一个REPLACEINTO语法,这可能就是您正在寻找的。如果这对您不起作用,使用UPDATE并检查ROW_COUNT()应该可行,您可能希望将整个事情包装在存储过程中,这样您就可以节省返回服务器的

由于已设置的 NOT NULL 字段,MySQL DUPLICATE KEY UPDATE 无法更新

我有一个使用严格模式的MySQL数据库,所以我需要在插入一行时填充所有NOTNULL值。我创建的API仅使用DUPLICATEKEYUPDATE功能来执行插入/更新。如果插入了预期的任何NOTNULL属性,则客户端应用程序会提示。基本示例(id为主键,有两个非空的字段aaa和xxx)INSERTINTOtablename(aaa,xxx,id)VALUES("value","value",1)ONDUPLICATEKEYUPDATEaaa=VALUES(aaa),xxx=VALUES(xxx)到目前为止一切都很好。一旦插入,系统将允许进行更新。尽管如此,仅更新其中一个字段时出现以下错误

php - PDOException 与 DROP TABLE IF EXISTS

我正在使用PDO调用以DROPTABLEIFEXISTS开头的存储过程。我随机得到PDOException'SQLSTATE[42S02]:Basetableorviewnotfound:1146Table'historygr.reached'doesn'texist'更烦人的是它会从告诉我这个到抛出一个异常说表已经存在,彼此在几秒钟内,似乎来自同一个连接。我自己无法触发错误,但会收到错误通知。这是错误产生的PHP:$dbh=PDODB::getInstance();$stmt=$dbh->query("CALLListReached(".$this->item_id.")");//f

MYSQL ON DUPLICATE KEY UPDATE 和 IGNORE 在一个查询中

如果ID、Year、rownum(唯一索引)的组合存在,我将执行一个查询,在de表中插入一些值,我会执行常规的ONDUPLICATEKEYUPDATE,因此该行被更新。查询如下所示:INSERTINTOdata_advertenties_prijzen(`ID`,`year`,`rownum`,`status_prijs`,`datum_dag`,`timestamp_dag`)VALUES(100,2014,1,1,'2014-01-01',1388534400),(100,2014,2,1,'2014-07-16',1405468800),(100,2014,3,1,'2014-0

mysql - mysql奇怪的 "Duplicate entry"错误

这可能是与unicode相关的问题。我有一个mysql源文件:setnamesutf8;STATUS;droptabletianya;createtabletianya(namechar(50)notnullprimarykey,passwdchar(50)notnull,emailchar(50));insertintotianyavalues("■■■■■■■■","68221",""),("12345678","098",""),("〡〢〣〤〥〦〧〨","1","");当我运行这个sql文件时,mysql报告:ERROR1062(23000)atline5:Duplicateen

php - 将已弃用的mysql_result更改为mysqli [duplicate]

这个问题已经有了答案:MySQLiequivalentofmysql_result()?11个答案我正在将我不推荐的php代码mysql改成新的mysqli,但是我对这一个有问题,问题是对于新代码,我只得到了Name的回显,即第一个回显,而不是nexts(Department,Phone),从我尝试过的所有代码中,这是最接近好结果的。有什么建议吗?我用这里找到的代码作为指南MySQLiequivalentofmysql_result()?旧代码.php";echo"Department:$Department";echo"Phone:$Phone";?>new-code.php新代码f

mysql - 将内部连接和 where 子句添加到 INSERT INTO ON DUPLICATE KEY UPDATE

我从这个INSERTINTOONDUPLICATEKEYUPDATEMySQL语句开始。INSERTINTOTable1(field1,field2)VALUES(1,2)ONDUPLICATEKEYUPDATEfield1=1,field2=2然后,我遇到了“外键约束失败”的错误。我意识到我需要添加另一个WHERE子句条件来满足具有内部连接的外键约束。我试过这样的;INSERTINTOTable1(field1,field2)InnerJoinTable2ONTable2.id=Table1.field_idVALUES(1,2)ONDUPLICATEKEYUPDATEfield1=

MySQL : Drop a unique key if exists -- but without knowing name of the key or whether it exists

不要问为什么(因为答案是“我们完全奇怪和定制的设置...”),但我需要在不知道key名称的情况下将唯一key放到表上(如果存在)--仅构成键的列。例如我有这张tableCREATETABLE`my_table`(`id`binary(36)NOTNULL,`username`char(12)NOTNULLDEFAULT'',`password`char(32)NOTNULLDEFAULT'',`role`char(1)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`username_2`(`username`,`role`),UNIQUEKEY`username`

MySQL 性能 : nested insert/duplicate key vs multiple updates

有谁知道什么会更有效并使用更少的资源:方法1--使用单个SELECT语句从一个表中获取数据,然后遍历它以对另一个表执行多个UPDATE。例如。(伪代码,execute()运行查询):Query1_resultset=execute("SELECTitem_id,sum(views)asview_countFROMtableAWHEREcondition=1");while(Query1_resultsetasrow){execute("UPDATEtableBSETview_count=row.view_countWHEREid=row.item_id");}方法2--使用单个INSE