У меня есть несколько таких таблиц в схеме / базе данных (схема называется «пользовательская») в рабочей среде MySQL:
----Table 1----
User Score
John 5
Sarah 3
----Table 2----
User Score
John 5
----Table 3----
User Score
John 5
Sarah 3
Предположим, Сара получает изменение баллов до 5. Я хочу обновить все ее баллы во всех таблицах, в которых она существует, до 5. Итак, тогда 3 таблицы будут выглядеть следующим образом:
----Table 1----
User Score
John 5
Sarah 5
----Table 2----
User Score
John 5
----Table 3----
User Score
John 5
Sarah 5
Возможно ли это сделать с помощью подготовленного java-оператора SQL? Если да, то как мне это сделать? Заранее спасибо. Кажется, я ничего не могу найти по этому поводу. Один из способов, который, как я знаю, будет работать, - это поиск каждой таблицы, занесение имен таблиц в массив и затем поиск каждой из них в цикле. Но я не уверен, что это лучший подход для этого.
Я думал примерно так, если бы это было возможно (какой-то неудобный псевдокод):
SELECT ALL_TABLES WHERE user = "SARAH" UPDATE score = 5
@Luuk, извините, я имел в виду, что имя базы данных было пользователем. позволь мне исправить это




Похоже, вам нужно динамически построить свой оператор следующим образом:
set @user = "SARAH";
set @score=5;
select
CONCAT("UPDATE `",c1.TABLE_NAME,"` SET score = ",@score," WHERE user='",@user,"'") as statement
from
information_schema.columns c1
inner join
information_schema.columns c2 on c1.TABLE_SCHEMA=c2.TABLE_SCHEMA
and c1.TABLE_NAME=c2.TABLE_NAME
and c2.COLUMN_NAME='score'
where c1.TABLE_SCHEMA='test' and c1.COLUMN_NAME='user'
;
вывод может быть примерно таким:
+-------------------------------------------------+
| statement |
+-------------------------------------------------+
| UPDATE `table 1` SET score=5 WHERE user='SARAH' |
| UPDATE `table 2` SET score=5 WHERE user='SARAH' |
| UPDATE `table 3` SET score=5 WHERE user='SARAH' |
+-------------------------------------------------+
Как выполнить динамическую строку Sql как запрос на сервере mysql? был задан раньше ...
извините, не смог найти ничего связанного, не знал, как это называется, только это отображалось: stackoverflow.com/questions/1796506/…. большое тебе спасибо
"несколько таблиц .... с именем" пользователь ". Непонятно, о чем вы говорите, потому что имя таблицы в схеме / базе данных уникально.