-4

私のデータベースには、それぞれにemp_number (INT)列がある約 30 個のテーブルがあります。

emp_number30 個のテーブルすべての値を更新するにはどうすればよいですか?

4

4 に答える 4

3

たとえば、次のような長い単一のクエリを使用できます。

UPDATE table1, table2, table3, ...
SET
  table1.emp_number = 30,
  table2.emp_number = 30,
  table3.emp_number = 30,
  ...

これがSQLFiddleです。

于 2013-07-01T13:31:10.847 に答える
2

MySQL を使用している場合は、これを実行します。

USE information_schema;
SELECT CONCAT('UPDATE ', table_name, ' SET emp_number = 30;')
FROM columns
WHERE table_schema = 'mydatabase'
AND column_name = 'emp_number'

次のような出力を取得するには:

次に、結果のクエリを実行します。

PHP などからクエリを実行する必要がある場合は、ストアド プロシージャに記述します。

于 2013-07-01T13:29:36.997 に答える
2

MS SQL を使用している場合は、これを試してください。

sp_msforeachtable " UPDATE ? SET emp_number='YOUR VALUE'"
于 2013-07-01T13:33:31.407 に答える
1

可能な限り最良の回答を得るには、使用している RDBMS を含める必要があります。とにかく、これはかなり一般的だと思います:

次を使用して、列を含むテーブルのリストを取得できますINFORMATION_SCHEMA

select TABLE_SCHEMA, TABLE_NAME 
from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME = 'emp_number'

次に、a を使用しcursorてテーブルのリストを調べ、各テーブルの更新ステートメントを動的に作成して実行します。

于 2013-07-01T13:27:40.413 に答える