Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: имеется база с записями , необходимо всем записям присвоить уникальный id

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: имеется база с записями , необходимо всем записям присвоить уникальный id ...
Сержо
Отправлено: 08 Сентября, 2008 - 10:28:01
Post Id


Гость


Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2008  


Помог: 0 раз(а)

[+]


имеется база с записями , необходимо всем записям присвоить уникальный id , подскажите как это реализовать , и какую поправку внести в код при добавлении записи чтобы id прописывался автоматом?
если можно подробно...
Заранее благодарен!
 
 Top
Champion Супермодератор
Отправлено: 08 Сентября, 2008 - 10:48:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




ALERT TABLE; поле id можно сделать автоинкерементным, можно генерить рандоммный id из кучи символов - тоже будет уникальный. вариантов много
 
 Top
Сержо
Отправлено: 08 Сентября, 2008 - 11:02:27
Post Id


Гость


Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2008  


Помог: 0 раз(а)

[+]


Champion пишет:
ALERT TABLE; поле id можно сделать автоинкерементным, можно генерить рандоммный id из кучи символов - тоже будет уникальный. вариантов много


автоинкерементным пробовал , но что то не получается ... какой тип поля должен быть там? если можно поподробней
 
 Top
Champion Супермодератор
Отправлено: 08 Сентября, 2008 - 11:03:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




тип - целочисленный
(Добавление)
нужно кроме автоинкремента сделать его not null и unique
(Добавление)
ALTER TABLE твоятаблица ADD авт.инк.поле INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
ALTER TABLE table ADD INDEX (авт.инк.поле);
 
 Top
Сержо
Отправлено: 08 Сентября, 2008 - 11:12:10
Post Id


Гость


Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2008  


Помог: 0 раз(а)

[+]


Champion пишет:
тип - целочисленный
(Добавление)
нужно кроме автоинкремента сделать его not null и unique
(Добавление)
ALTER TABLE твоятаблица ADD авт.инк.поле INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
ALTER TABLE table ADD INDEX (авт.инк.поле);


#1067 - Invalid default value for 'id'
не дает сделать авт.инк.поле...

также пишет:
ВНИМАНИЕ! PRIMARY and INDEX keys should not both be set for column `id`

(Отредактировано автором: 08 Сентября, 2008 - 11:24:20)

 
 Top
Champion Супермодератор
Отправлено: 08 Сентября, 2008 - 11:46:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Индекс значит не надо. Он наверное для примари кей сам создается в мускуле. А первую ошибку че-то не пойму
(Добавление)
попробуй ...auto_increment = 0...
(Добавление)
это значене, с которого оно начнет увеличиваться
 
 Top
Сержо
Отправлено: 08 Сентября, 2008 - 11:58:53
Post Id


Гость


Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2008  


Помог: 0 раз(а)

[+]


Champion пишет:
Индекс значит не надо. Он наверное для примари кей сам создается в мускуле. А первую ошибку че-то не пойму
(Добавление)
попробуй ...auto_increment = 0...
(Добавление)
это значене, с которого оно начнет увеличиваться


все-равно #1067 - Invalid default value for 'id'
Огорчение
вот запрос:
ALTER TABLE `base` CHANGE `id` `id` INT DEFAULT '0' NOT NULL AUTO_INCREMENT
щас у меня там 4 записи , где id = 0,1,2,3 соответственно . пробовал по умолчанию ставить и 10 и 0 .... но ошибка все такая же #1067

(Отредактировано автором: 08 Сентября, 2008 - 12:02:28)

 
 Top
Champion Супермодератор
Отправлено: 08 Сентября, 2008 - 12:22:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




не ALTER TABLE `base` CHANGE `id` `id` INT DEFAULT '0' NOT NULL AUTO_INCREMENT
, а
ALTER TABLE `base` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT = 0
попробуй так
 
 Top
Сержо
Отправлено: 08 Сентября, 2008 - 13:16:31
Post Id


Гость


Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2008  


Помог: 0 раз(а)

[+]


Champion пишет:
не ALTER TABLE `base` CHANGE `id` `id` INT DEFAULT '0' NOT NULL AUTO_INCREMENT
, а
ALTER TABLE `base` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT = 0
попробуй так


все получилось огромное спасибо!
проблема оказалась в id с значением 0 , изменил на 4 (т.к 4 записи было id=0.1.2.3) - все заработало!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB