есть база servers в ней куча таблиц server1,server2,server3 ...
структура у всех одинаковая... так вот как обновить ячейку day во всех таблицах сразу????
UPDATE server1 SET day=day-1
может можно во множестве как то прописать
UPDATE server1,server2,server3... SET day=day-1
или по совпадению слова server
не получается найти инфу
SQL
UPDATE обновить все таблицы.. помогите с запросом??? (вн подробнее)
Никак. UPDATE server1,server2,server3... -это еще нормально, начиная с 4ой какой-то версии показывает, что обновление таблицы будет на основе значений других таблиц. А вот day=day-1 - уже не получится, надо указать один конкретный столбец, а здесь day есть и в s1, и в s2. А вот так можно: update s1,s2 set s1.n=s1.n-1, s2.n=s2.n-1
жесткий хардкор :
srver - export - sql
ctrl + H
server - import
srver - export - sql
ctrl + H
server - import
курсором можно сделать, в него закачиваешь список серверов с базаданных, список нужных таблиц на серверах, данные которые нужно обновить, а дальше строишь запрос на обновление нужных данных, но есть нюанс, если данных очерь много, то это займет немало времени, т. к курсор выполняется построчно и чем больше объем данных, тем он медленней будет, но зато курсор эффективен в подобных операциях или для алгоритмов сложной логики :)
но если сервера связанны и имеют одинаковую схему базы, то можно обновить на одном и остальные уже с помощью репликации, а так, альтернативы курсору нет :)
но если сервера связанны и имеют одинаковую схему базы, то можно обновить на одном и остальные уже с помощью репликации, а так, альтернативы курсору нет :)
Sergio Nanobashvili
Отвечая на вопросы на мейле, надо делать лицо попроще.
Сон разума рождает чудовищ, как говорят испанцы.
Не обладая вообще никакими знаниями, ты мало того что берешься что-то делать, но еще и огрызаешься на тех, кто тебя наставляет на путь истинный.
У тебя просто адовая стркутура БД.
В нормально организованной базе такой запрос вообще будет не нужен.
Во-первых, таблица должна быть ОДНА.
Во-вторых, никаких запросов вида SET day=day-1.
В базу достаточно записать что-то один раз, а потом она сама все тебе посчитает при выборке.
В базу надо писать ДАТУ. А не дурацкую цыферку day.
И потом выбирать только РАЗНИЦУ:
SELECT to_days(now())-to_days(date_set) as day
Но ты можешь продолжать считать всех вокруг дураками (и при этом приставать к ним, чтобы починили тебе твой велосипед на треугольных колесах)
Не обладая вообще никакими знаниями, ты мало того что берешься что-то делать, но еще и огрызаешься на тех, кто тебя наставляет на путь истинный.
У тебя просто адовая стркутура БД.
В нормально организованной базе такой запрос вообще будет не нужен.
Во-первых, таблица должна быть ОДНА.
Во-вторых, никаких запросов вида SET day=day-1.
В базу достаточно записать что-то один раз, а потом она сама все тебе посчитает при выборке.
В базу надо писать ДАТУ. А не дурацкую цыферку day.
И потом выбирать только РАЗНИЦУ:
SELECT to_days(now())-to_days(date_set) as day
Но ты можешь продолжать считать всех вокруг дураками (и при этом приставать к ним, чтобы починили тебе твой велосипед на треугольных колесах)
Похожие вопросы
- Sql запрос создания таблицы
- Помогите написать sql запросы
- Выполнение вложенного запроса в БД. Скалярные запросы.
- MySQL.Задания по запросам.
- SQL. Есть таблица а и b как мне поставить ограничение на поле таблицы b, на основании поля таблицы a? пример в описании
- Можно ли связать одно поле таблицы с несколькими полями другой таблицы?
- Добрый день! Помогите пожалуйста сообразить, как написать запрос
- Вопрос по SQL - уникальное поле ID для трёх таблиц (нельзя вставить значения в одну, если оно есть в другой таблице).
- Не отрабатывает вложенный MySQL запрос
- Какие вы знаете методы оптимизации времени выполнения запроса (кроме оптимизации самого запроса)?