Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заколдованный круг BLOB
 
 автор: Eugene77   (19.05.2009 в 12:04)   письмо автору
 
 

У меня есть таблица:
SHOW create table   `en_user`  ;
    
CREATE TABLE `en_user` (
 `num` int(6) NOT NULL AUTO_INCREMENT,
 `id_login` int(6) DEFAULT '0',
 `id_forum` smallint(3) DEFAULT '1',
 `id_type` smallint(3) DEFAULT '1',
 `site` varchar(20) DEFAULT '',
 `first_post` int(6) NOT NULL DEFAULT '0',
 `all_posts` blob NOT NULL,
 `first_theme` int(6) NOT NULL DEFAULT '0',
 `all_themes` blob NOT NULL,
 `duplicate` enum('yes','no') DEFAULT 'no',
 PRIMARY KEY (`num`),
 UNIQUE KEY `access` (`id_login`,`id_forum`,`id_type`,`site`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 CHECKSUM=1

Я, естественно, иногда хотел бы её пополнять:
Request:
 INSERT INTO shate196_forum100.en_user SET 
all_posts='', 
first_post=0, 
id_login=189, 
id_forum=11, 
site = 'all_', 
id_type=6 

Но она не даётся:
Error:
Field 'all_themes' doesn't have a default value 

Я её пробую приручить:
SQL-запрос:

ALTER TABLE `en_user` CHECKSUM =1,
CHANGE `all_themes` `all_themes` BLOB NOT NULL DEFAULT '',
CHANGE `all_posts` `all_posts` BLOB NOT NULL DEFAULT '' 

Но она возражает:
Ответ MySQL:
#1101 - BLOB/TEXT column 'all_themes' can't have a default value

Вопрос:
Это нормальное поведение базы MySQL?

  Ответить  
 
 автор: Trianon   (19.05.2009 в 12:26)   письмо автору
 
   для: Eugene77   (19.05.2009 в 12:04)
 

да.

почему NOT NULL?

  Ответить  
 
 автор: Eugene77   (20.05.2009 в 20:57)   письмо автору
 
   для: Trianon   (19.05.2009 в 12:26)
 

А если разрешить NULL, то такого не будет?
Хотя уже, наверно поздно... ведь дефолт NULL тоже не написать...

А на вопрос почему...
Я не был уверен как мне в скрипте с этим NULL обращаться.
Будет он приравниваться пустой строке или нет?

  Ответить  
 
 автор: Root   (20.05.2009 в 22:40)   письмо автору
 
   для: Eugene77   (20.05.2009 в 20:57)
 

>Я не был уверен как мне в скрипте с этим NULL обращаться.
>Будет он приравниваться пустой строке или нет?

Посмотрели бы сами:
<?php
$x 
null;
var_dump$x == '' );
var_dump$x === '' );

для MySQL
SELECT '' IS NULL

  Ответить  
 
 автор: Eugene77   (21.05.2009 в 17:40)   письмо автору
 
   для: Root   (20.05.2009 в 22:40)
 

Спасибо за совет!
Разобраться, конечно, можно.
Просто мне надо было писать скрипт уже, а не разбираться, и я сделал по принципу наименьшего сопротивления.За что и поплптился.
Так всегда, по крайней мере со мной, получается. ; )

  Ответить  
 
 автор: tuder   (10.11.2009 в 19:50)   письмо автору
 
   для: Eugene77   (20.05.2009 в 20:57)
 

>А если разрешить NULL, то такого не будет?
>Хотя уже, наверно поздно... ведь дефолт NULL тоже не написать...

ALTER TABLE `en_user` CHANGE `all_themes` BLOB NULL

Разрешается нулл и меняется на дефолтный нулл

  Ответить  
 
 автор: Eugene77   (11.11.2009 в 13:52)   письмо автору
 
   для: tuder   (10.11.2009 в 19:50)
 

Спасибо!
Воспользуюсь

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования