这是我的代码。我收到“IF NOT EXISTS ...”语句的语法错误。对于我想在这里做什么来说,这是非常明显的。如果记录存在于术语表中,我想知道唯一的term_id。如果该记录不存在,我想插入一条新记录并获得唯一的term_id,这将在随后的语句中需要。如果记录不存在,将记录插入到mysql中,并在任一场景中保存唯一的ID
如何在保留逻辑的同时在句法上正确写入此语句。谢谢。
INSERT INTO `koolkat_temp`.`creatives` (`creative_id`, `creative_title`, `creative_image_name`) VALUES (NULL, 'xyz', 'xyz');
SET @record_pointer = LAST_INSERT_ID();
IF NOT EXISTS (SELECT `term_id` INTO @term_id_placement FROM `terms` WHERE `name` LIKE 'xyz.com' and `taxonomy` LIKE 'placement') THEN
INSERT INTO `terms` (`term_id` ,`name` ,`slug`, `taxonomy`, `description` ,`parent`, `count`) VALUES (NULL, 'xyz.com', 'xyz.com', 'placement', '', 0, 0);
SET @term_id_placement = LAST_INSERT_ID();
ENDIF;
INSERT IGNORE INTO `term_relationships` (`creative_id` ,`term_id` ,`term_order`) VALUES (@record_pointer, @term_id_placement, 0);
我认为这可能类似于你要找的东西:[链接](http ://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql) –
虽然这将工作,我仍然不知道如何提取唯一term_id万一如果记录存在。 – hvs
您可以运行两个查询,这可以简化并使代码更易于维护。 – Cristik