我试图看看是否有一种方法可以仅使用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');


名称是唯一列,因此如果我得到重复的列,它将返回错误的LAST_INSERT_ID();其余的查询执行错误。

有什么办法可以在MySQL中放置if语句?像:

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

最佳答案

您可以创建一个函数或存储过程来做到这一点。另一种选择是使用case语句。

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

关于mysql - MySQL,如果最后一次插入重复,则不执行下一条语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28096252/

10-12 03:41