0
我有一个从现有的(Despgoods)表中插入数据的新表(DespGoods_All详细信息)一个MySQL INSERT语句。两个表中的主键都是'case no',despgoods_alldetails中的自动增量列。MySQL的insert语句 - 在重复键更新
每个案例号都有一个随时发生变化的负荷号。如何调整我的语句,以便在检测到重复键时,它只更新该记录的负载号,而不仅仅是失败/忽略/跳过要插入的记录。有些记录不会重复,有些会记录。非重复记录仍然需要插入,而重复记录只需要更新。
我是否使用替换到或在重复密钥更新?如何在现有查询中使用此语法?
在此先感谢您的帮助。
insert ignore into despgoods_alldetails
(`loc or exp` ,`LOC TRNSPRT DEST` ,`load number` ,`case no` ,`lot id` ,`metal mass` ,`gross mass` ,`CASE CREATION DATETIME` ,`CASE PROGERESS STATUS` ,`PROGRESS STAT DATETIME` ,`case width` ,`case height` ,`case length` ,`storage` ,`del prty` ,`CRTD DEPT` ,`CASE STATUS` ,`lab released` ,`PROD STREAM` ,`PROD SUB STREAM` ,`CSC Name` ,`Customer` ,`DAYS STANDING` ,`EXP SHIPREL` ,`LOC WHS EREL` ,`LOC CUST REL` ,`REC CHANGED AT` ,`transporttypename` ,`transporttypeid` ,`customerID`,`LOCStatus`)
SELECT `despgoods`.`loc or exp` ,`despgoods`.`LOC TRNSPRT DEST` ,`despgoods`.`load number` ,`despgoods`.`case no` ,`despgoods`.`lot id` ,`despgoods`.`metal mass` ,`despgoods`.`gross mass` ,`despgoods`.`CASE CREATION DATETIME` ,`despgoods`.`CASE PROGERESS STATUS` ,`despgoods`.`PROGRESS STAT DATETIME` ,`despgoods`.`case width` ,`despgoods`.`case height` ,`despgoods`.`case length` ,`despgoods`.`storage` ,`despgoods`.`del prty` ,`despgoods`.`CRTD DEPT` ,`despgoods`.`CASE STATUS` ,`despgoods`.`lab released` ,`despgoods`.`PROD STREAM` ,`despgoods`.`PROD SUB STREAM` ,`despgoods`.`CSC Name` ,`despgoods`.`Customer` ,`despgoods`.`DAYS STANDING` ,`despgoods`.`EXP SHIPREL` ,`despgoods`.`LOC WHS EREL` ,`despgoods`.`LOC CUST REL` ,`despgoods`.`REC CHANGED AT` ,`customers`.`transporttypename` ,`customers`.`transporttypeid` ,`customers`.`customerID` ,'loadplanned'
FROM despgoods
INNER JOIN customers
ON
despgoods.customer = customers.customername
";
谢谢,我继续使用插入忽略或只是插入?我将用重复密钥更新进行测试。再次感谢。 – Smudger
Thanks @ Jan,为了重复的键更新,我可以只从我的嵌入式select语句中指定列名称?我应该更新多个字段我可以使用:ON DUPLICATE KEY UPDATE'load number','gross mass' = VALUES('load number','gross mass');谢谢,瑞安 – Smudger
在重复密钥更新中使用'load number' = VALUES('load number'),'gross mass' = VALUES('gross mass') –