Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2011, 18:45   #1
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
Радость ID в таблице

Здравствуйте! Вопросы:

1) Допустим в таблице есть столбик id с auto_increment'ом. Каким образом можно обновить все id в полях одной таблицы, если значения id идут не по порядку, а допустим так 2,3,7,9,11, и.т.д. Auto increment работает, просто получилось так что они разбросались.

2) Каким образом можно проделать вышесказанное, но чтобы id значения начинались с двойки.

Надо сделать это на php.
Я пробывал по разному, но не получалось. Вот одна из моих проб:
PHP код:
$rrr mysql_query("SELECT * FROM categories",$db);
            
$num_rows mysql_num_rows($rrr);
            for(
$tt=0$tt<$num_rows$tt++)
            {
                
$ins_upd_res mysql_query("UPDATE categories SET id=id+1",$db);
            } 
Да, и к update нужно обязательно добавлять условие where, иначе он попытается обновить много чего
pavelslap вне форума Ответить с цитированием
Старый 20.01.2011, 18:54   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Вы неправильно понимаете смысл инкремента. Он не подразумевает его изменение (начальное его значение можно задать при создании таблицы). Он используется для установления связей между записями в разных таблицах. Чаще всего в виде Первичного ключа - а дочерние таблицы используют ссылку на родительскую запись указанием внешнего ключа (для mysql myisam - это только теория, но полезно знать для упорядочивания структуры базы). Поэтому какой смысл изменить поля id в родительской таблице?? Мы рискуем потерять связь с дочерними.
По крайней мере это основной смысл поля auto_increment ...
Cronos20 вне форума Ответить с цитированием
Старый 20.01.2011, 21:21   #3
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Вы неправильно понимаете смысл инкремента. Он не подразумевает его изменение (начальное его значение можно задать при создании таблицы). Он используется для установления связей между записями в разных таблицах. Чаще всего в виде Первичного ключа - а дочерние таблицы используют ссылку на родительскую запись указанием внешнего ключа (для mysql myisam - это только теория, но полезно знать для упорядочивания структуры базы). Поэтому какой смысл изменить поля id в родительской таблице?? Мы рискуем потерять связь с дочерними.
По крайней мере это основной смысл поля auto_increment ...
спасибо большое, действительно не подумал. Нужно собраться с мыслями и почитать что-то полезное. извините за беспокойство
pavelslap вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рассчет в таблице new_here Microsoft Office Access 4 21.10.2010 18:27
Вычисляемое поле в таблице ACCESS, создать вычисляемое поля в таблице аксес artlayers Microsoft Office Access 2 04.11.2009 19:29
Поиск в таблице бд Aндрей БД в Delphi 2 27.04.2009 18:45
Поиск в таблице бд Aндрей Помощь студентам 2 27.04.2009 09:13
Слияние шаблона с данными из таблице, и как подсичтать значение количества полей в таблице n4ela Microsoft Office Access 3 07.03.2009 12:04