powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySql создать столбец если его не существует.
5 сообщений из 5, страница 1 из 1
MySql создать столбец если его не существует.
    #39815570
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые участники. Подскажите пожалуйста есть база данных my_bd в ней есть таблица stat.
Задача не простая тем что мне ее трудно вам изъяснить, но я постараюсь.

В таблице stat есть PRYMARY (ID_Client) - он уникальный и для каждого пользователя в базе имеет свое значение возьмем для примера "ID_001". Таблица должны уметь расширяться при определенных условиях, под "расширяться" я имею введу что в нее добавляется столбец "TIME_X" если необходимо сделать в его запись.

Если необходимый столбец "TIME_X" уже есть, то надо в ячейке "ID_001" - "TIME_X" сделать запить "VALUE".. но если "TIME_X" нет то нужно есть создать и сразу сделать запись "VALUE" в ячейке "ID_001" - "TIME_X"... - задача была бы проста если бы не еще 1 условие.

"ID_001" тоже может быть или не быть... и есть он или нет тоже нужно проверить.. если его нет то нужно его создать, а если он есть то просто сделать запись в ячейке "ID_001" - "TIME_X" (напомню что если "TIME_X" нет то ее тоже надо создать и сразу записать..)

Параметр "ID_001" и столбец "TIME_X" может быть или не быть... если они оба есть то просто сделать запись. Если нет столбца "TIME_X" но есть параметр "ID_001" в столбце (ID_Client) то нужно создать столбец и сделать запись. Если нет параметра "ID_001" в столбце (ID_Client) но есть столбец "TIME_X" то нужно создать "ID_001" в столбце (ID_Client). Если нет "ID_001" в столбце (ID_Client) и нет столбца "TIME_X" то нужно их создать и сделать запись.

Это все нужно сделать 1, по всей видимости длинным запросом..
...
Рейтинг: 0 / 0
MySql создать столбец если его не существует.
    #39815571
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
MySql создать столбец если его не существует.
    #39815600
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В теме MySql упомянут, если так, то тут форум про SQLite
2. Так не делают: "Добавить поле X если поле Y содержит значение Z". Структура БД должна оставаться неизменной, иначе ты еще много проблем огребешь в будущем. Опиши подробнее какую задачы пытаешься решить этим извратом.
3. Не надо стараться сделать все одним запросом, это не всегда быстрее.
...
Рейтинг: 0 / 0
MySql создать столбец если его не существует.
    #39815818
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2. Задача - сбор статистики посещаемости для игрового сервера. Статистика собирается онлайн с секундах. У каждого игрока есть свой уникальный ID и он сообщает его серверу в момент подключения. Я хотел сделать чтоб в каждое GetTime(мировое время в секундах) соответствовало TIME_X таким образом TIME_1234, TIME_12345 и т д каждую секунду. Но игрокаи подклюются к серверу не каждую секунду по этому я хочу чтоб TIME_X создавался только тогда когда игрок подключается или уходит с сервера. - чтоб не плодить столбцы.

Предложите альтернативу если говорите что так не делают..
...
Рейтинг: 0 / 0
MySql создать столбец если его не существует.
    #39816657
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай таблицу:
Код: sql
1.
2.
3.
4.
5.
6.
create table stat (
   id_client integer not null,
   time_x timestamp not null,
   data not null,
   primary key (id_client, time_x)
)


И заноси свои значения в поле data.

Так какая у тебя база? SQLite или MySQL? Это очень разные вещи.

Модератор: Тема перенесена из форума "SQLite".
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySql создать столбец если его не существует.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]