2016-08-24 3 views
0

Предположим, что у нас есть таблица A с одним столбцом «destination» и таблицей B с столбцом «местоположение». Я хочу создать хранимую процедуру, которая вставляет данные в «destination» из A в «location» из B. Предположим, что данные в «destination» являются целыми числами - давайте сделаем для этого значения значение «123» - и после того, как он вставлен в таблицу B, я хочу, чтобы процедура прикрепляла «4» до конца, делая значение «1234». Как мне это сделать?Сохраненная процедура для изменения данных после переноса ее из одной таблицы в другую?

Ниже то, что я для хранимой процедуры до сих пор, прежде чем добавлять изменения, которые должны быть сделаны, чтобы изменить целые значения передаются:

CREATE PROCEDURE 'stored_procedure' (IN p_destination int) 

BEGIN 

INSERT INTO table_b(location) 

SELECT destination 

FROM table_a 

WHERE destination = p_destination; 

"code here for adding "4" to the end of value" 

END 

Спасибо заранее!

ответ

0

Используй эту вставка запрос в вашей процедуре

insert into table_b(location) select destination+'4' from table_a WHERE destination = p_destination

1

Попробуйте это: Предполагая, что расположение в таблице B также целочисленного столбец

INSERT INTO table_b(location) 
SELECT CAST(CAST(destination AS VARCHAR(30))+'4' AS INT) 
FROM table_a 
WHERE destination = p_destination; 

ИЛИ вы можете прямо UPDATE команды после вставки Данные в таблице B

UPDATE Table_b 
SET destination = CAST(CAST(destination AS VARCHAR(30))+'4' AS INT) 

Это обновит все строки из Table_b

+0

Пробовал, но это просто приводит к простому добавлению, где «123» становится «127» вместо «1234». Нужно ли конвертировать «пункт назначения» в другой тип данных? –

+0

Пробовали ли вы точный скрипт, сначала конвертируем пункт назначения в varchar, затем добавляем строку 4, а затем снова конвертируем эту результирующую строку в Integer –

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