我有一个顾客.
CREATE TABLE `customer` (
`cNic` VARCHAR(50) NOT NULL DEFAULT '',
`cName` VARCHAR(100) NULL DEFAULT NULL,
`cAddress` VARCHAR(500) NULL DEFAULT NULL,
`cTp` VARCHAR(50) NULL DEFAULT NULL,
`cEmail` VARCHAR(50) NULL DEFAULT NULL,
`creditLimit` DOUBLE NULL DEFAULT NULL,
`CustomerStatus` INT(11) NULL DEFAULT '0',
PRIMARY KEY (`cNic`)
)
将新行添加到此客户表时,如果新行的cNic(主键)已在客户表中,则我想使用其他字段对现有(旧)行进行更新. (更新客户集cName =’NewName’,其中cNic =’enteredNic’).
否则(如果cNic不在表中)插入新行.我知道我可以在mssql中使用触发器来做到这一点.有没有办法在mysql中做到这一点.
解决方法:
MySQL没有触发器,但是没有REPLACE和INSERT…ON DUPLICATE KEY UPDATE(请参阅文档).
另请参阅我对“INSERT IGNORE” vs “INSERT … ON DUPLICATE KEY UPDATE”的回答