Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > пропуск NOT NULL полей в insert-e


Автор: patience 4.6.2009, 22:05
Доброе время суток.

Можно ли пропустить поля типа not null  в insert-e ?

Пример:

Таблица
Код

CREATE TABLE IF NOT EXISTS `media_videos` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `user_id` mediumint(8) unsigned NOT NULL,
  `type` tinyint(3) unsigned NOT NULL,
  `name` varchar(50) NOT NULL,
  `src` varchar(255) NOT NULL,
  `vars` varchar(255) NOT NULL,
  `url` varchar(255) default NULL,
  `width` smallint(5) unsigned default NULL,
  `height` smallint(5) unsigned NOT NULL,
  `tags` varchar(255) NOT NULL,
  `rating` mediumint(8) unsigned NOT NULL,
  `total_comments` smallint(5) unsigned NOT NULL,
  `total_views` mediumint(8) unsigned NOT NULL,
  `total_ratings` smallint(5) unsigned NOT NULL,
  `thumbnail` tinyint(3) unsigned NOT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;


и запрос

Код

INSERT INTO media_videos SET name="test",user_id="1",width=520,height=290,date=now()


Получаем ошибку:
Field 'type' doesn't have a default value

Существует какой-то sql_mode который позволяет это сделать, а на место полей ставятся значения по умолчанию для данного типа данных?



Автор: Akina 4.6.2009, 22:52
Ну так укажи default для каждого not null поля! 

Автор: patience 5.6.2009, 00:14
Цитата(Akina @ 4.6.2009,  22:52)
Ну так укажи default для каждого not null поля!

А по-другому сделать? Настроить MySql?

т.к. БД уже сформирована.

Дамп БД был сделан с сервера и запрос который я привел выше там работает.

При моих настройках БД запрос выдает ошибку.


Автор: patience 5.6.2009, 01:06
Спасибо,

тема закрыта, на сервере not null полям стои default null
дамп криво создался. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)