Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обновить значения для primary key, как это сделать? 
:(
    Опции темы
linderox
Дата 15.3.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



после удаления некоторых полей из таблицы хочу поменять значения для primary key, чтобы навести порядок в записях. хочу это сделать так, чтобы не было пробелов в нумерации. как это можно сделать?
у меня Codeigniter - может там есть что-то уже встроенное?
PM MAIL   Вверх
bars80080
Дата 16.3.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(linderox @  15.3.2009,  10:33 Найти цитируемый пост)
после удаления некоторых полей из таблицы хочу поменять значения для primary key, чтобы навести порядок в записях. хочу это сделать так, чтобы не было пробелов в нумерации. как это можно сделать?

не помню ни одного случая, когда упорядочивание уникального идентификатора не было бы злом. обрисуйте зачем вам это нужно
PM MAIL WWW   Вверх
linderox
Дата 16.3.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



просто стало интересно! можно или нельзя и как это сделать
PM MAIL   Вверх
bars80080
Дата 16.3.2009, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



это разрушит структуру ваших данных. идентификатор не должен упорядочиваться


а что не получается просто слить данные в массив или файл, а затем обратно залить, где в primary key записывать порядковый номер записи, а не прежний id

правда, если поле auto_increment, то потребуется дополнительно удалить таблицу и заново пересоздать
PM MAIL WWW   Вверх
pompei
Дата 17.3.2009, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.9.2007

Репутация: нет
Всего: 6



Не понимаю в чём проблемма.
Код

mysql> create table asd(id int primary key auto_increment, name varchar(255));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into asd(name)values('asd');
Query OK, 1 row affected (0.01 sec)

mysql> select * from asd;
+----+------+
| id | name |
+----+------+
|  1 | asd  |
+----+------+
1 row in set (0.00 sec)

          -- вот просто update-ом изменяем первичный ключ с автоинкрементом
mysql> update asd set id = 100 where name = 'asd';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from asd;
+-----+------+
| id  | name |
+-----+------+
| 100 | asd  |
+-----+------+
1 row in set (0.00 sec)

mysql> insert into asd (name) values ('dsa');
Query OK, 1 row affected (0.00 sec)

--  вот автоинкремент как работал так и работает
mysql> select * from asd; 
+-----+------+
| id  | name |
+-----+------+
| 100 | asd  |
| 101 | dsa  |
+-----+------+
2 rows in set (0.00 sec)


Это сообщение отредактировал(а) pompei - 17.3.2009, 04:48
--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап.
PM MAIL   Вверх
bars80080
Дата 17.3.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(pompei @  17.3.2009,  03:46 Найти цитируемый пост)
Не понимаю в чём проблемма.

а если назад? допустим автоинкремент насчитал 100 значений, большая часть строк в силу разных причин удалена, оставшиеся, скажем 20, надо упорядочить с 1 по 20, а автоинкремент запустить с 21

как тогда?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.