mysql中的“代替”触发器

我有一个顾客.

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没有触发器,但是没有REPLACEINSERT…ON DUPLICATE KEY UPDATE(请参阅文档).

另请参阅我对“INSERT IGNORE” vs “INSERT … ON DUPLICATE KEY UPDATE”的回答

上一篇:MySql触发器删除同一表中的子记录


下一篇:插入后和更新后的MySQL触发器