Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / sql запрос / 8 сообщений из 8, страница 1 из 1
07.10.2014, 18:11:29
    #38769529
jacobcore
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
Добрый день всем пользователям. Собственно есть колонка назовём её guid там 146 тыс записей и каждая запись разбросана от 1 до 18248256 примерного значения. Как мне рассчитать эту колонку чтобы с 1 записи все было расчитано до 146 тыс? чтобы не было заоблачных цифр в этой колонке? Пробовал UPDATE creature SET guid = null; выдавало лишь дубликат. прошу огромный помощи

Сама структура базы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE TABLE `creature` (
  `guid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Global Unique Identifier',
  `id` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT 'Creature Identifier',
  `map` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Map Identifier',
  `spawnMask` tinyint(3) unsigned NOT NULL DEFAULT '1',
  `phaseMask` int(10) unsigned NOT NULL DEFAULT '1',
  `modelid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `equipment_id` tinyint(3) NOT NULL DEFAULT '0',
  `position_x` float NOT NULL DEFAULT '0',
  `position_y` float NOT NULL DEFAULT '0',
  `position_z` float NOT NULL DEFAULT '0',
  `orientation` float NOT NULL DEFAULT '0',
  `spawntimesecs` int(10) unsigned NOT NULL DEFAULT '120',
  `spawndist` float NOT NULL DEFAULT '0',
  `currentwaypoint` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `curhealth` int(10) unsigned NOT NULL DEFAULT '1',
  `curmana` int(10) unsigned NOT NULL DEFAULT '0',
  `MovementType` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `npcflag` int(10) unsigned NOT NULL DEFAULT '0',
  `unit_flags` int(10) unsigned NOT NULL DEFAULT '0',
  `dynamicflags` int(10) unsigned NOT NULL DEFAULT '0',
  `VerifiedBuild` smallint(5) DEFAULT '0',
  PRIMARY KEY (`guid`),
  KEY `idx_map` (`map`),
  KEY `idx_id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16691423 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature System';


Таблица guid значения там от 1 до 251625. всего 146 тыс записей в этой таблице нужно рассчитать колонку guid от 1 до 146 тыс. Чтобы каждая запись имела свой номер но по порядку. Благодарю!
...
Рейтинг: 0 / 0
07.10.2014, 18:30:58
    #38769547
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
Во-первых, это бессмысленная затея. "Дырки" в нумерации все равно будут появляться. Да и с внешними ключами на эту таблицу, если они есть, надо будет что-то делать.

Во-вторых, есть два варианта:
1) 7489347 и не забыть сделать ALTER TABLE creature AUTO_INCREMENT = новое_значение;
2) Пересоздать таблицу (Создать с другим именем, перелить данные, удалить старую, переименовать новую, не забыть про права и внешние ключи).
...
Рейтинг: 0 / 0
07.10.2014, 18:32:03
    #38769550
jacobcore
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
miksoftВо-первых, это бессмысленная затея. "Дырки" в нумерации все равно будут появляться. Да и с внешними ключами на эту таблицу, если они есть, надо будет что-то делать.

Во-вторых, есть два варианта:
1) 7489347 и не забыть сделать ALTER TABLE creature AUTO_INCREMENT = новое_значение;
2) Пересоздать таблицу (Создать с другим именем, перелить данные, удалить старую, переименовать новую, не забыть про права и внешние ключи).
Мне важно, чтобы гуайд не привышал 1 млн.
...
Рейтинг: 0 / 0
07.10.2014, 19:01:00
    #38769577
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
jacobcoreМне важно, чтобы гуайд не привышал 1 млн.почему?
...
Рейтинг: 0 / 0
07.10.2014, 19:05:33
    #38769584
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
tanglirjacobcoreМне важно, чтобы гуайд не привышал 1 млн.почему?Подозреваю, что где-то в дизайне заложено 6 символов.
...
Рейтинг: 0 / 0
09.10.2014, 00:58:11
    #38771051
Станислав Клевцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
jacobcore,
почему вы для guid (Global Unique Identifier) используете тип данных integer ?
Ведь можно заложиться на строковый тип для GUID'а ?!
...
Рейтинг: 0 / 0
09.10.2014, 07:41:30
    #38771127
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
Станислав Клевцовjacobcore,
почему вы для guid (Global Unique Identifier) используете тип данных integer ?
Ведь можно заложиться на строковый тип для GUID'а ?!

очевидный ответ- потому что это не Guid, хотя и называется так.
...
Рейтинг: 0 / 0
09.10.2014, 07:54:22
    #38771131
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
tanglirjacobcoreМне важно, чтобы гуайд не привышал 1 млн.почему?

я тоже присоединяюсь к вопросу.
это не нужно, если нет каких то других требований.

сделать же это достаточно просто,но не нужно пытаться это сделать одним запросом . Там сначала удаляется первичный ключь , потом меняется значение поля, со старого на новое, желательно при этом сохранить соответствие старого и нового значения поля в отдельной таблице, Все это делается в курсе по этой таблице. наверное желательно еще добавить поле с признаком того, обработана запись уже или нет. чтобы если встанет все, можно было бы заново начать.

после всех изменений надо заново создать первичный ключ и поменять внешние ключи в других таблицах.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / sql запрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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