Mysql,如果最后一个插入是重复的,则不执行下一个语句(nubie)

时间:2015-01-22 18:35:33

标签: mysql

我试图看看是否有办法让我只使用mysql查询迁移一个大数据库,没有php。

INSERT INTO company (name) VALUES ('name') ON DUPLICATE KEY UPDATE name=name; 
SET @companyID = LAST_INSERT_ID();
INSERT INTO phone2company (companyID,phoneID) VALUES (@companyID,'3');
INSERT INTO address2company (companyID,address) VALUES (@companyID,'address');

name是一个唯一的列,所以如果我得到一个重复的,它会返回错误的LAST_INSERT_ID();其余的查询执行错误。

有没有办法在mysql中放一个if语句?像是:

IF (@companyID <> @last_companyID) {
  insert 1....
  insert 2....
}

1 个答案:

答案 0 :(得分:0)

您可以创建一个函数或存储过程来执行此操作。另一种选择是使用案例陈述。

http://dev.mysql.com/doc/refman/5.0/en/case.html