Как в MySQL вставить “если её ещё нет”?

Возможно вы хотите написать такой SQL запрос, который будет вставлять данные в таблицу (основываясь на идентификаторе), если их ещё там нет или не делать ничего в обратном случае. Решение в данной заметке.

Можете воспользоваться запросом REPLACE:

REPLACE INTO `transcripts` SET
  `ensembl_transcript_id` = ‘ENSORGT00000000001′,      
  `transcript_chrom_start` = 12345,      
  `transcript_chrom_end` = 12678;  

Для решения этой же задачи можно воспользоваться и запросом INSERT IGNORE:

INSERT IGNORE INTO `transcripts` SET     
  `ensembl_transcript_id` = ‘ENSORGT00000000001′,      
  `transcript_chrom_start` = 12345,      
  `transcript_chrom_end` = 12678;  

И в том и в другом случае вы добьётесь нужного эффекта.

Источник перевода: http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql
Перевел: Станислав Протасевич, источник статьи

 

Добавить комментарий


Защитный код
Обновить