2016-06-23 10 views
-1

私は、データが一時テーブルを使用して宛先テーブルに移入されるストアドプロシージャを持っています(これはすべての計算を実行します)。 私が直面している問題は、2つの列を連結してその値を得ているということです。 つまり一時テーブルから宛先テーブルの計算カラムを追加

concat(status_code|status_reason) as STATUS 
concat(prior_status_code|prior_status_reason) as PRIOR_STATUS 

ここで、この連結は一時テーブルで行っています。 私はそのデータを宛先テーブルにロードする必要があり、宛先テーブルにはSTATUS列とPRIOR_STATUS列がありません。 データをロードするために私はので、私はそれが私の列がテーブルに存在しないとして無効ですエラーをスローこの部分を実行すると

insert into Destination(column_names,Status,prior_status) 

select (column_names) from temporary table 

を使用しています。

P.S.私は宛先でこれらの2つの列を追加するためにalterコマンドを使用しました。まだ希望の結果が得られていません。

これを行うための他の方法はありますか?これは間違っていますか? 助けてください。

ありがとうございます。

+1

MySQLやSQL Serverの?あなたは両方のタグを付けました... –

答えて

0

あなたのフィールドを追加してください。バッククォートにフィールド名を入れることが重要です。 statusは予約語です。

ALTER TABLE youTable 
ADD COLUMN `status` VARCHAR(100), 
ADD COLUMN `PRIOR_STATUS` VARCHAR(100); 

あなたはまた、同様に、テーブル内のフィールドの位置を指定することができます。

ALTER TABLE youTable 
ADD COLUMN `status` VARCHAR(100) AFTER fieldxx, 
ADD COLUMN `PRIOR_STATUS` VARCHAR(100) BEFORE fieldzz; 
+0

これはMySQLまたはMS SQL Server用ですか? – jarlh

+0

@jarlh - its for mysql –

関連する問題