2011-12-29 2 views
3

Как мне изменить инструкцию MySQL так, чтобы она вставляла только строку в таблицу_b, если идентификатор свойства еще не указан в таблице_b?MySQL: введите строку, если она еще не существует?

INSERT INTO table_b(property_id, siteaddress, area_name, result) 
SELECT property_id, siteaddress, "Area A" AS area_name, IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((44.933690000000006, -111.07178 
44.96479, -104.1504 
41.062780000000004, -104.04053 
41.01306, -111.07178 
44.887010000000004, -111.04981000000001 
))') 
)AS result 
FROM table_a 
WHERE IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((44.933690000000006, -111.07178 
44.96479, -104.1504 
41.062780000000004, -104.04053 
41.01306, -111.07178 
44.887010000000004, -111.04981000000001))') 
) = 1; 

INSERT INTO table_b(property_id, siteaddress, area_name, result) 
SELECT property_id, siteaddress, "Area B" AS area_name, IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((37.909530000000004, -87.69288 
37.89219000000001, -82.5293 
36.40359, -83.58399 
35.78217, -86.33057000000001 
37.90872, -87.69356 
37.909530000000004, -87.69288 
))') 
)AS result 
FROM table_a 
WHERE IS_POINT_IN_POLYGON(
POINTFROMTEXT(CONCAT('POINT(', latitude, ' ', longitude, ')')) , POLYFROMTEXT('POLYGON((37.909530000000004, -87.69288 
37.89219000000001, -82.5293 
36.40359, -83.58399 
35.78217, -86.33057000000001 
37.90872, -87.69356 
37.909530000000004, -87.69288))') 
) = 1; 
+1

возможно дубликат [? Как 'вставить, если не существует' в MySQL] (HTTP : //stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql) –

ответ

Смежные вопросы