2016-08-24 8 views
0

テーブルAを1つの列「宛先」とし、表Bを「場所」と呼んでいるとします。私は、Aから "目的地"のデータをBの "場所"に挿入するストアドプロシージャを作成したいとします。 "目的地"のデータが整数であるとしましょう - このシナリオの値を "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; 

か、右挿入した後、コマンドを更新できると仮定すると、表Bのデータ

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

これはTable_bのすべての行を更新します

+0

これは試しましたが、これは単なる追加になります。 "123"は "1234"ではなく "127"になります。 「宛先」を別のデータ型に変換する必要がありますか? –

+0

あなたは正確なスクリプトを試しましたか?先にvarcharに変換してから文字列4を追加し、その結果の文字列をInteger –