|
|
|
insert if not exists
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Имеется две связанные таблицы. И временная таблица tmp_foo, в которой хранится набор foo_name,bar_name. Мне необходимо вставить в таблицу foo все значения из tmp_foo так, чтобы сначала была проверка, все ли bar_name из tmp_foo существуют в bar и если нет, то записала эти новые значения. А потом уже вставляла все значения (insert ... on duplicate key update) в таблицу foo. В данном случае, необходимо: добавить в таблицу bar значения 'd' и 'e' (insert if not exists?) insert into foo (foo_id,bar_id) (select ... from tmp_foo join bar on duplicate key update ...) Со вторым пунктом вроде понятно, а вот первый не понимаю, как сделать. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 17:38:28 |
|
||
|
insert if not exists
|
|||
|---|---|---|---|
|
#18+
Сделайте уникальный ключ на BAR и вставляйте туда данные через INSERT IGNORE Добавятся только те, которых там не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 17:46:32 |
|
||
|
insert if not exists
|
|||
|---|---|---|---|
|
#18+
anvano, Точно. Спасибо большое! Получилось следующее: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 18:02:26 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=113&tid=1832239]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 326ms |

| 0 / 0 |
