別のテーブルからテーブル名を取得してテーブルを更新する -- sql フィールド と oracle フィールド と sql-update フィールド 関連 問題

Updating a table by fetching table name from another table












0
vote

問題

日本語

のようなさまざまなテーブルの名前を格納するマスターテーブル(テスト)があるとします。 <事前> <コード> ID | TABLE_NAME 1 | TABLE_1 2 | TABLE_2 3 | TABLE_3

このようなテーブルを更新したい

<事前> <コード> update ( select TABLE_NAME from TEST where id =1 ) t set t.(some attribute) = 'XYZ';

することは可能ですか?

英語

Suppose i have a master table (TEST) which stores names of various tables like

ID | TABLE_NAME 1  | TABLE_1 2  | TABLE_2 3  | TABLE_3 

Now I want to update tables like this

update (    select TABLE_NAME     from TEST     where id =1   ) t set t.(some attribute) = 'XYZ'; 

Is it possible to do?

</div
        
   
   

回答リスト

2
 
vote

はい、あなたの構文はいくつかわずかな変更を加えるべきです:

<事前> <コード> UPDATE (SELECT some_col FROM TEST WHERE id = 1) SET some_col = 'XYZ';

副問合せのSELECT文節に追加して、更新したい列を公開する必要があります。

 

Yes, your syntax should work, with a few slight changes:

UPDATE (SELECT some_col FROM TEST WHERE id = 1) SET some_col = 'XYZ'; 

You need to expose the columns you wish to be update by adding them to the select clause of the subquery.

</div
 
 
2
 
vote

EXECUTE IMMEDIATE

でPL / SQLブロック/プロシージャを使用します。 <事前> <コード> DECLARE v_value VARCHAR2(10) := 'XYZ'; BEGIN FOR t IN ( SELECT table_name FROM test --where condition ) LOOP EXECUTE IMMEDIATE 'UPDATE ' || r.table_name || ' SET some_attribute = :somevalue' USING v_value; END LOOP; END; /
 

Use a PL/SQL block /procedure to do that with EXECUTE IMMEDIATE

DECLARE      v_value   VARCHAR2(10) := 'XYZ'; BEGIN      FOR t IN (           SELECT table_name           FROM test --where condition      ) LOOP           EXECUTE IMMEDIATE 'UPDATE ' || r.table_name || '          SET some_attribute = :somevalue'                USING v_value;      END LOOP; END; / 
</div
 
 

関連する質問

26  更新トリガを使用して別のテーブルを更新する方法は?  ( How to use update trigger to update another table ) 
トリガーが登録され、列の更新にトリガーを作成し、その値で別のテーブルを更新したいです。 私は1年の列を持つTable1を持っています、そして、その年の列を更新する必要がある場合は、同じ年の年の表2を更新する必要があります。 <事前> <コード> spring9...

-1  PHPの状態でMySQLを更新する  ( Update mysql in if condition in php ) 
私は問題があります。 visual_form_builder (WordPressプラグイン)では、フィールドの値を投稿し、次のフィールド値を付けてからMySQLテーブルのレコードを更新したいと思います。 問題は、条件がない場合、 9988777663 コ...

1  FORM値からのPHP MySQLの更新文生成  ( Php mysql update statment generation from form values ) 
私は非常に小さいデータベースの抽象レイヤを作成しています、私はフォームから取得した変数の配列を送信し、更新SQL文を生成し、最終的に実行します。 下記の2行目に何を置くのですか? 例えば <事前> <コード> $table name = "user"; $us...

0  他のテーブルから小計に基づいてフィールドを更新します  ( Update a field based on subtotal from another table ) 
Oracle(10)を使用しています。 次の2つのテーブルを持っています: <事前> <コード> Table1 (uniq rows): ID AMOUNT DATE Table2: ID AMOUNT1 AMOUNT2 ...AMO...

0  他のMySQLクエリの出力(その値)を使用する必要があります。  ( I need to use the output its value of one mysql query in another ) 
1つのクエリの出力を他の値として使用するのに問題があります。そのようなことは、次のクエリを使用して1つの製品(これに成功した)の価格を取得する必要があります。 <コード> SELECT Cena FROM Proizvod WHERE ProzivodID...

0  MSSQL Trigger更新プログラムの更新  ( Mssql trigger update on column ) 
私は2つのテーブルを持っています、そして表2に挿入または更新するトリガーを持つことができますが、それを行う方法はわかりません。 表1: <事前> <コード> CREATE TABLE [dbo].[DevicePorts]( [ID] [int] ID...

1  Oracle SQL - 別の属性値に基づいて同じテーブルを更新する  ( Oracle sql update same table based on another attribute value ) 
Oracleには、次の値を持つ4つの属性を持つテーブルがあります。 <事前> <コード> attribute_a attribute_b attribute_c attribute_d abcd1 ...

412  MySQLの複数の更新プログラム  ( Multiple updates in mysql ) 
私はあなたが一度に複数の行を挿入できることを知っています、MySQLで一度に(1つのクエリで)複数の行を更新する方法はありますか? 編集: たとえば、次のがあります。 <事前> <コード> property DispPitch: TDispPitch read...

1  TSQLアップデートの問題  ( Tsql update issue ) 
OK SQL Serverファンには、SQL Server 2008 R2インスタンスの内側にあるレガシーストアドプロシージャーがあり、最小のものが恐ろしいことを示すPRODデータでも継承しています。また、データやテーブル構造を変更することはできません。 ...

3  Query SQLite - Androidの更新  ( Update query sqlite android ) 
私のAndroidアプリでSQLiteで簡単なアップデートクエリを解読することができません。ここでクエリ、 <事前> <コード> int fav = 1; Cursor c = sqliteDB.rawQuery("UPDATE "+ MyConstants....




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有