powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Автоинкремент и значение по умолчанию
26 сообщений из 26, показаны все 2 страниц
Автоинкремент и значение по умолчанию
    #33019915
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь поставить mod для phpBB2 там есть такой фрагмент кода
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TABLE phpbb_flags (
   flag_id int( 10 ) NOT NULL DEFAULT  0  auto_increment,
   flag_name varchar( 25 ),
   flag_image varchar( 25 ),
   PRIMARY KEY (flag_id)
);
Когда пытаюсь выполнить этот фрагмент получаю след. ошибку
Код: plaintext
1.
Invalid default value for 'phpbb_flags'
В чем ошибка?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019916
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь очепятался
Код: plaintext
1.
Invalid default value for 'flag_id'
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019924
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну по идее

Код: plaintext
flag_id int( 10 ) NOT NULL DEFAULT  0  auto_increment

говорит о том что

flag_id - тип инт(10), НЕ НОЛЬ, по умолчанию НОЛЬ, автоинкримент.....

как то не очень логично....

_______________
Felix
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019928
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так правильнее...
Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE phpbb_flags (
   flag_id int( 10 ) NOT NULL auto_increment,
   flag_name varchar( 25 ),
   flag_image varchar( 25 ),
   PRIMARY KEY (flag_id)
);
он же тебе и говорит что не правильное значение по умолчанию..... скорее даже не допустимое.....
автоинкремент не может быть по умолчанию 0




_______________
Felix
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019929
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
©Felix
flag_id - тип инт(10), НЕ НОЛЬ, по умолчанию НОЛЬ, автоинкримент.....
как то не очень логично....


Существует большая разница между NULL и 0. Null - это отсутствие любого значения вообще. 0 - это просто цифра.
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019941
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Существует большая разница между NULL и 0. Null - это отсутствие любого значения вообще. 0 - это просто цифра

Полностью согласен. А если быть еще точнее NULL - неопределенность. Так почему он не хочет принимать значение 0?

Такой фрагмент срабатывает нормально
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TABLE phpbb_flags (
   flag_id int( 10 ) NOT NULL auto_increment,
   flag_name varchar( 25 ),
   flag_image varchar( 25 ),
   PRIMARY KEY (flag_id)
);
Но тогда при вставке записи без указания flag_id как раз и получится неопределенность. Не знаю как в Mysql а в с++ такая конструкция не сработает
Код: plaintext
1.
2.
int i;
i++;
Точнее сработает но результатом будет фиг знает что. А вот если так
Код: plaintext
1.
2.
int i= 0 ;
i++;
То результат как и ожидалось 1. В с# эту проблему уже решили.
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019942
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй сделать не 0 а 1 (или любое другое число) и скажи что получится
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019944
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результат тот же :(. Кстати у меня Mysql-4.1.9
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019945
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
странно почему и сейчас не понял

смотри у тебя стоит PRIMARY KEY (flag_id) это значит что значение flag_id уникально и не null следовательно когда ты ставишь значение по умолчанию то по идее при инсерте в котором не упоминается это поле в него нужно записать DEFAULT а поскольку оно уникальное то записать его будет нельзя потому что велика вероятность что оно повторится

насколько я представляю все именно так должно работать
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019946
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
int i;
i++;

зря это в с# исправили

это правильно потому как у тебя в памяти может лежать любой мусор а ты туда инкрементировать еще что -то хочешь

те он за тебя вписывает туда 0 а если тебе надо другое значение а ты забыл инициализировать переменную ... вообщем очень может не хорошо выйти хрен потом такой баг отловишь
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019947
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
вообщем очень может не хорошо выйти хрен потом такой баг отловишь

Так это новая фича M$ :) они хотят облегчить жизнь всем.

Тогда я что-то не пойму, а как тогда работает автоинкремент?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33019948
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первое значение 1 потом сквозной инкремент на 1 деже если ты удалил запись (последнюю) с номером 134 (предыдущая получается 133) и сделаешь инсерт то добавится значение 135 и тд это ключ по которому можно добраться до любой записи тк он не должен повторяться
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33020839
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хрен

понимаю.... я так и думал, просто написал буквами вот и не понятки....
====

еще раз повторюсь, насколько знаю то у автоинкремента НЕ может быть значения дефолт.... потому хоть 0 хоть 1 хоть 235 туда пиши толку не будет.....

поетому дефолт автоинкременту писать нельзя......

грубо но для кажной вставки он сам дефолт считает :)
_______________
Felix
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33021092
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо я вставляю новую запись
insert into phpbb_flags (flag_name, flag_image) values ('Ukraine', 'Ukraine.jpg')
);
Так какое значение будет у flag_id?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33021177
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
следующее значение. Чаще всего на 1 большее чем максимальное значение flag_id в твоей таблице
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33021859
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если это первая запись?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33021992
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33023158
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Тогда странно что ж буржуи за бугром этого не знали?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33025281
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно, буржуи за бугром это придумали и прописали в спецификации.

------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно ц
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33026900
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
собственно, буржуи за бугром это придумали и прописали в спецификации.

Тогда почему не работает?
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33027474
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что не работает????
_______________
Felix
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33027816
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha, не е%и мозг, тебе же сказали убрать дефолт. или ты тот же taj, только под другим ником зашёл?
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно ц
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33061218
KrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KrK
Гость
А как сделать так, чтобы после удаления записи, значения автоинкрементного поля автоматически пересчитывались? Чтобы не было такого: сначала идет 5-я запись, а за ней сразу 7-я.
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33061343
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrKА как сделать так, чтобы после удаления записи, значения автоинкрементного поля автоматически пересчитывались? Чтобы не было такого: сначала идет 5-я запись, а за ней сразу 7-я.
А в чем собственно проблема? :)

Для вас, как для программера, значения не имеет какие номера ID "проставлены" для записей. Главное, что это номер, "однозначно идентифицирующий запись", и все.
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33062711
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автоинкремент можно и лапками делать, если не влом.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно ц
...
Рейтинг: 0 / 0
Автоинкремент и значение по умолчанию
    #33075812
rusomen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помоему так будет выглядить flag_id
insert into phpbb_flags (flag_id, flag_name, flag_image) values ('','Ukraine', 'Ukraine.jpg')
);
а когда он вставит запись в базу он автоматом даст ей ID :)
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Автоинкремент и значение по умолчанию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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