1

I have a MySQL Procedure that does an insert into a table using a select from another table. Thus

INSERT INTO my_tbl (fld1, fld2, fld3) SELECT fld1, fld2, fld3 FROM tbl_2 where tbl_2.id=33;

That works fine

However, I now need to insert another field into my_tbl from a value I have in a variable (set from a passed in parameter)

Can someone explain the syntax to mix the insert with fields from the select (which I have already) with the additional field that is a variable in the procedure.

Many thanks

Mark

1 Answer 1

1

Just use the variable like you'd use a column or column expression, except if it's a string don't surround it with quotes. If you have, for example, the variable @idValue:

INSERT INTO my_tbl (fld1, fld2, fld3)
SELECT fld1, fld2, fld3 FROM tbl_2
where tbl_2.id = @idValue;

Or if you're updating, say for example you have a variable @fld2Value:

INSERT INTO my_tbl (fld1, fld2, fld3)
SELECT fld1, @fld2Value, fld3 FROM tbl_2
where tbl_2.id = @idValue;

This will insert tbl2.fld1, the value of variable @fld2Value, and tbl2.fld3 into my_tbl. The number of rows inserted will depend on the number of rows returned by the SELECT, and the @fld2Value will be the same for each inserted row.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.