код ошибки 1265 данные усечены при попытке вставить в таблицу

#mysql

#mysql

Вопрос:

у меня возникает эта ошибка, когда я пытаюсь вставить в свою базу данных:

 error code 1265 data truncated on `bd_html`
 

здесь таблица:

 CREATE TABLE IF NOT EXISTS `frame_board_intra_board` (
  `bd_no` int(10) unsigned NOT NULL auto_increment,
  `bd_order` int(10) unsigned NOT NULL default '0',
  `bd_depth` int(10) unsigned NOT NULL default '0',
  `bd_root` int(10) unsigned NOT NULL default '0',
  `bd_parent` int(10) unsigned NOT NULL default '0',
  `ca_no` int(10) unsigned NOT NULL default '0',
  `bd_notice` enum('0','1') NOT NULL default '0',
  `userID` varchar(20) NOT NULL default '',
  `userName` varchar(20) NOT NULL default '',
  `userPass` varchar(41) NOT NULL default '',
  `userEmail` varchar(100) NOT NULL default '',
  `bd_secret` varchar(41) NOT NULL default '',
  `bd_title` varchar(255) NOT NULL default '',
  `bd_content` text NOT NULL,
  `bd_html` enum('0','1') NOT NULL default '0',
  `bd_noBr` enum('0','1') NOT NULL default '0',
  `bd_regDate` datetime default NULL,
  `bd_ip` varchar(40) NOT NULL default '',
  `bd_procedure` int(2) NOT NULL default '0',
  `bd_hit` int(10) unsigned NOT NULL default '0',
  `bd_vote` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`bd_no`),
  KEY `bd_order` (`bd_order`),
  KEY `userID` (`userID`),
  KEY `userName` (`userName`),
  KEY `bd_title` (`bd_title`),
  KEY `bd_regDate` (`bd_regDate`),
  KEY `bd_hit` (`bd_hit`),
  KEY `bd_vote` (`bd_vote`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
 

и это данные, которые я пытаюсь вставить:

 INSERT INTO `frame_board_intra_board` (`bd_no`, `bd_order`, `bd_depth`, `bd_root`, `bd_parent`, `ca_no`, `bd_notice`, `userID`, `userName`, `userPass`, `userEmail`, `bd_secret`, `bd_title`, `bd_content`, `bd_html`, `bd_noBr`, `bd_regDate`, `bd_ip`, `bd_procedure`, `bd_hit`, `bd_vote`) VALUES
(1, 4294967195, 0, 1, 0, 0, '0', 'test', '테스터', 'mdOh3LqBW8ckU', '', '202cb962ac59075b964b07152d234b70', '인트라넷 게시판 테스트입니다.', '<P>인트라넷 게시판입니다.</P>', '', '', '2010-10-04 14:18:19', '124.137.28.78', 0, 6, 0);
 

Я использую mysql workbench при вставке в базу данных.

Ответ №1:

В некоторых базах данных размер символа имеет значение. Подозрительно, что вы вставляете «широкие» символы в varchar поля to, но в MySQL это нормально.

Вместо этого проблема включена bd_html . Этот столбец определен как принимающий '0' и '1' значения. Тем не менее, вы проходите '' . Вы должны использовать либо NULL или '0' .

Комментарии:

1. я вижу. но когда я пытаюсь вставить иностранные / корейские символы в другие таблицы только с типом данных varchar, его вставка просто прекрасна. я не знаю почему.

2. но по умолчанию установлено значение «0» .. я не создавал эту базу данных. я просто переношу его. что мне делать?

3. @ChristianBurgos . . . Ах, теперь я понимаю проблему. '' является пустой строкой. Это не NULL так . Используйте NULL явно.

4. это сработало.. Спасибо! но вот проблема, что, если есть тонна записей? что мне теперь делать?

5. Возможно, вы можете выполнить глобальную замену '' на ‘0″?