[MySQL] В чём ошибка-то?

ifani

Пытаюсь поставить UbbThreads - инсталляция валится...
С помощью отладочной печати выяснил, что вылетает на таком запросе:

CREATE TABLE w3t_PollMain (
P_Id INT(11) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT PRIMARY KEY,
P_Start INT(11) UNSIGNED,
P_Stop INT(11) UNSIGNED,
P_MustVote INT(1) UNSIGNED,
P_NoResults INT(1) UNSIGNED)

Попробывал прогнать его вручную в phpMyAdmin - ругается:
- Invalid default value for 'P_Id'

И что ему не нравится?
Я конкретно на MySQL не пишу, но, имхо, всё тут нормально...
Думал, что, может, ему кавычки не нравятся - пробывал без них.
Ещё думал, что, может, он как-нить ноль интерпретирует криво - пробывал заменять на 1.
Один фиг - всё та же ошибка
Какие ещё могут быть варианты?
UPD:
Если вообще убрать default '0', то запрос проходит, но насколько это корректно?
Ведь не дураки же писали - посмотрел, что в предыдущих версиях форума тоже подобные запросы при инсталляции идут. Раз всё время так делают, то, значит, это должно работать.
Версия MySQL - 4.1.12

slonishka

может у тебя там O, а не 0?

bobby

смотри здесь
Note: There can be only one AUTO_INCREMENT column per table, it must be indexed, and it cannot have a DEFAULT value.

slonishka

НО: Ведь не дураки же писали - посмотрел, что в предыдущих версиях форума тоже подобные запросы при инсталляции идут. Раз всё время так делают, то, значит, это должно работать.

bobby

А может в прошлых версиях mysql забивал на такие штуки, а теперь стал более строг!

slonishka

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

ifani

Спасибо
Я уже тоже подумал, что, наверное, с автоинкрементом нельзя пользоваться дефолтом.
Хотя, на самом деле странное ограничение - а вдруг мне бы захотелось, чтобы значения столбца начались, например, со ста.
Придётся, значит, убирать его из всех запросов...
З.Ы.:
А UbbThreads новее, чем 6.5, я просто не нашёл - если кто поделится, то буду очень благодарен

bobby

Хотя, на самом деле странное ограничение - а вдруг мне бы захотелось, чтобы значения столбца начались, например, со ста.
В таком случае ты можешь написать:
CREATE TABLE tbl (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
...
) AUTO_INCREMENT=100;
Либо, если хочешь сменить auto_increment для уже существующей таблицы:
ALTER TABLE tbl AUTO_INCREMENT=100;

NAIL

а если ещё и InnoDB попробуй - не получится
Оставить комментарий
Имя или ник:
Комментарий: