SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.12.2011 17:26:34

sasha1
Участник
Зарегистрирован: 21.12.2011
Сообщений: 3

кАК ИСПРАВИТЬ ОШИБКУ

кАК ИСПРАВИТЬ ОШИБКУ  #1067 - Invalid default value for account?вОТ КОД
Структура таблицы `tb_users`
--

CREATE TABLE IF NOT EXISTS `tb_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(100) NOT NULL,
  `ip` varchar(15) NOT NULL,
  `pemail` varchar(13) NOT NULL,
  `referer` int(10) NOT NULL,
  `country` varchar(30) NOT NULL,
  `visits` int(11) NOT NULL DEFAULT '0',
  `referals` int(5) NOT NULL DEFAULT '0',
  `referalvisits` int(10) NOT NULL DEFAULT '0',
  `money` double NOT NULL DEFAULT '0',
  `paid` double NOT NULL DEFAULT '0',
  `joindate` varchar(15) NOT NULL,
  `lastiplog` varchar(15) NOT NULL,
  `account` varchar(8) NOT NULL DEFAULT 'Базовый',
  `user_status` varchar(8) NOT NULL DEFAULT 'user',
  `wmid` varchar(12) NOT NULL,
  `blockip` varchar(15) NOT NULL,
  `chatpaid` double NOT NULL DEFAULT '0',
  `chatmoder` int(1) NOT NULL DEFAULT '0',
  `chatmessages` int(5) DEFAULT NULL,
  `avatar` varchar(50) NOT NULL DEFAULT 'no.png',
  `reyting` int(11) NOT NULL DEFAULT '0',
  `referer2` int(10) DEFAULT NULL,
  `referalvisits2` int(6) DEFAULT '0',
  `views_mails` int(11) NOT NULL DEFAULT '0',
  `money_mails` double NOT NULL DEFAULT '0',
  `email` varchar(30) DEFAULT NULL,
  `lastpay` int(11) DEFAULT NULL,
  `blockpay` varchar(3) DEFAULT NULL,
  `lastcook` varchar(50) DEFAULT NULL,
  `rek` varchar(50) DEFAULT NULL,
  `curlink` varchar(150) NOT NULL,
  `chitor` varchar(150) NOT NULL,
  `bayref` varchar(150) NOT NULL,
  `dayvisit` varchar(150) NOT NULL,
  `timerec` varchar(150) NOT NULL,
  `finset` int(11) NOT NULL DEFAULT '0',
  `auth` varchar(10) NOT NULL,
  `lastlogdate` varchar(150) DEFAULT NULL,
  `actcode` varchar(15) NOT NULL,
  `passtype` varchar(5) NOT NULL,
  `lastver` varchar(50) NOT NULL,
  `taskabuses` varchar(5) NOT NULL DEFAULT '0',
  `timereg` int(15) NOT NULL,
  `sell` varchar(10) NOT NULL,
  `popal` varchar(3) NOT NULL DEFAULT '0',
  `popadostime` varchar(50) NOT NULL,
  `lastmail` int(15) NOT NULL,
  `autoproc` int(3) NOT NULL DEFAULT '0',
  `toref` double DEFAULT '0',
  `doing` int(1) DEFAULT '0',
  `family` int(1) DEFAULT '0',
  `mailaccess` int(1) DEFAULT '0',
  `taskreyt` int(5) NOT NULL DEFAULT '0',
  KEY `id` (`id`)
)

Неактивен

 

#2 21.12.2011 19:16:53

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: кАК ИСПРАВИТЬ ОШИБКУ

Вам же ясно написали, что ошибка в "Invalid default value for account". Смотрим в структуру:
`account` varchar(8) NOT NULL DEFAULT 'Базовый',
Делаем выводы и исправляем ошибку.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 21.12.2011 19:24:51

sasha1
Участник
Зарегистрирован: 21.12.2011
Сообщений: 3

Re: кАК ИСПРАВИТЬ ОШИБКУ

Neval написал:

Вам же ясно написали, что ошибка в "Invalid default value for account". Смотрим в структуру:
`account` varchar(8) NOT NULL DEFAULT 'Базовый',
Делаем выводы и исправляем ошибку.

Исправляла как могла не получается
И 0 добавляла...без толку

Неактивен

 

#4 21.12.2011 21:11:41

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: кАК ИСПРАВИТЬ ОШИБКУ

Хм, ну-ка покажите ошибку при
`account` varchar(8) NOT NULL DEFAULT '0'


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 21.12.2011 21:30:06

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: кАК ИСПРАВИТЬ ОШИБКУ

sasha1, кодировку лучше задавать после подключения явно, ну и у самой таблицы тоже стоит ее указывать.
Примерно так:
CREATE TABLE `tb_users` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `account` varchar(8) NOT NULL DEFAULT 'Базовый',     KEY `id` (`id`) ) DEFAULT CHARSET=utf8;

Код:

mysql> set names 'utf8';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE `tb_users` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `account` varchar(8) NOT NULL DEFAULT 'Базовый',     KEY `id` (`id`) ) DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.05 sec)

В случае cp-1251 нужно вдвое больше байт выделять

Код:

mysql> set names 'cp1251';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE `tb_users` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `account` varchar(8) NOT NULL DEFAULT 'Базовый',     KEY `id` (`id`) ) DEFAULT CHARSET=cp1251;
ERROR 1067 (42000): Invalid default value for 'account'

mysql> CREATE TABLE `tb_users` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `account` varchar(16) NOT NULL DEFAULT 
'Базовый',     KEY `id` (`id`) ) DEFAULT CHARSET=cp1251;
Query OK, 0 rows affected (0.08 sec)

Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 21.12.2011 22:00:21

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: кАК ИСПРАВИТЬ ОШИБКУ

deadka написал:

В случае cp-1251 нужно вдвое больше байт выделять

Хм, а откуда такое? Вижу по примерам, но понять не могу smile Для utf8 ещё понятно, но для 1251 на каком основании?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#7 21.12.2011 22:54:46

sasha1
Участник
Зарегистрирован: 21.12.2011
Сообщений: 3

Re: кАК ИСПРАВИТЬ ОШИБКУ

спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson