如果条目不存在,我想将数据插入多个表中。
就我而言,我有一个餐厅表,一个位置表,一个foodtype表以及一些辅助表,例如restaurant_location和restaurant_foodtype。现在,我想插入一个新的餐厅条目,其中包含位置和食物类型信息(如果该条目不存在)。
foodtype
restaurant_location
restaurant_foodtype
所以像这样:
IF NOT (select 1 from restaurant where name='restaurantname') THEN INSERT INTO restaurant(x,y) VALUES (valuex,valuey); INSERT INTO restaurant_location(rest_id,..) VALUES (rest_id,..); INSERT INTO restaurant_foodtype(rest_id,..) VALUES (rest_id,..); ... END IF
如何使用简单的SQL执行此操作?
我只是在脑海中写下了这个,但是如果您必须使用简单的sql来做的话,这应该是个主意。
insert into restaurant(x, y) values select valuex, valuey from dual where not exists( select 1 from restaurant where name = 'restaurantname')
编辑: 同样,我无法解析它,但您可能可以使用WITH子句:
with validation as( select 1 from restaurant where name = 'restaurantname' ) insert into restaurant(x, y) values ( select value1x, value1y from dual where validation.v = 1), ( select value2x, value2y from dual where validation.v = 1)