sql - How can I stop a mysql insert statement from executing when a select statement returns nothing? -
consider select statement:
select course_id courses course_id = ( select course_id courses course_id = 3 , max_size > students_registered); - the values inserted not coming select. submitted form user. select tells me if there slot available make insert.
currently check on front end 1 ajax call, i'm trying move away front end. suggestions appreciated.
the insert statement inserts 8 values table. nothing extraordinary value question. i've researched extensively. option moving stored procedure?
i need insert fail when select returns no rows or null can return right view/jsp application.
please let me know details provide help.
you can use insert ... select judiciously control this.
for example,
insert mytable (course_id, col2, col3) select a.course_id col1, 'value' col2, 'another_value' col3 courses course_id = 3 , max_size > students_registered limit 1 the trick write select query returns values want insert, , returns either 1 row or none depending on conditions. write query , debug it. make sure works.
then put insert clause right before it.
if select comes no rows, insert insert nothing. if select comes 1 row, that's inserted.
this great way this; don't have worry race conditions or transactions.
edit. notice select statement contains mixture of values derived table , constant values. if don't use values table, this:
select ?param1 col1, ?param2 col2, ?param3 col3 you did't mention host language, ?param items above guess @ appropriate placeholders data coming form.
this form of select still want; if where clause returns no rows nothing inserted.
Comments
Post a Comment