если я хочу выбрать какой-либо идентификатор из таблицы и вставить его значение в другую таблицу в качестве внешнего ключа, то как мне это сделать с помощью хранимой процедуры?
Пример того, как я бы подошел к этому.
DECLARE @MyID INT; SET @MyID = 0; SELECT @MyID = [TableID] FROM [MyTable] WHERE [TableID] = 99; IF @MyID > 0 BEGIN INSERT INTO [MySecondTable] VALUES (@MyID, othervalues); END
Переменные в стиле Oracle:
DECLARE v_MyVariable1 NUMBER; DECLARE v_MyVariable2 VARCHAR2(100); BEGIN v_MyVariable1 := 0; SELECT INTO v_MyVariable2 CUSTOMER_NAME FROM CUSTOMERS; SELECT INTO v_MyVariable1 CUSTOMER_HISTORY_SEQ.NEXTVAL FROM DUAL; INSERT INTO CUSTOMERS_HISTORY (CUSTOMER_ID, CUSTOMER_NAME) VALUES (v_MyVariable1, v_MyVariable2); EXCEPTION WHEN OTHERS THEN NULL; END;
Переменные в стиле PostgreSQL:
DECLARE my_variable1 int; DECLARE my_variable2 int; BEGIN my_variable1 := 25; SELECT INTO my_variable2 id FROM my_table1; INSERT INTO my_table2 (my_field1, my_field2, id) VALUES ('XXX', 'YYY', my_variable2); END;