一尘不染

在MySQL中“代替”触发器

sql

我有一个顾客。

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新行的(主键)已经在客户表中,则我想使用其他字段对现有(旧)行进行更新。(Update customer set cName='NewName' where cNic = 'enteredNic')。

否则(如果cNic不在表中)插入新行。我知道我可以使用instead of触发器在mssql中做到这一点。有没有一种方法可以在mysql中做到这一点。


阅读 175

收藏
2021-03-10

共1个答案

一尘不染

MySQL没有触发器,但是它具有REPLACEINSERT
… ON DUPLICATE KEY UPDATE
(请参阅文档)。

2021-03-10