Оператор вставки MySQL сводит меня с ума

#mysql

#mysql

Вопрос:

Это мой сценарий создания таблицы:

 DROP TABLE IF EXISTS `wp_beats`;
CREATE TABLE  .`wp_beats` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `name` varchar(512) NOT NULL,
  `filename` varchar(512) NOT NULL,
  `extension` varchar(4) NOT NULL,
  `upload_date_time` datetime NOT NULL,
  `genre_ID` int(11) NOT NULL,
  `duration` varchar(14) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 

Это мое заявление о вставке:

  INSERT INTO `wp_beats` (name, user_id, filename, extension, duration, upload_date_time) VALUES ("Anthony test beat", "1", "4eaab724745ee", ".mp3", " 00:04:13.88", "2011-10-28 14:08:07")
 

И я получаю эту ошибку в браузере mysql:

 Failed to read auto-increment value from storage engine
 

Находите ли вы какие-либо недостатки в каком-либо заявлении?

Редактировать:

Я удалил таблицу и создал новую с помощью приведенного выше скрипта, и теперь она работает. Это действительно забавно. Бог знает, что произойдет, когда это произойдет в производственной среде!

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

1. bugs.mysql.com/bug.php?id=36411 — Я думаю, что это известная ошибка. Попробуйте явно присвоить имя полю auto inc в инструкции insert и установить значение «null».

2. Какая версия MySQL и какая платформа? Существует по крайней мере одна ошибка InnoDB , которая приводит к этому сообщению об ошибке.

3. Я скопировал и вставил инструкции в тестовую базу данных и не получил сообщение об ошибке; возможно, у вас повреждена таблица? Google для того, чтобы проверить и исправить его.

Ответ №1:

два варианта: либо http://bugs.mysql.com/bug.php?id=36411 или вы уже вышли из int(11)

Ответ №2:

Одна из проблем, с которой вы сталкиваетесь при вставке, заключается в том, что вы не вставляете genre_id , даже если таблица не принимает значения NULL; НО сообщение об ошибке, которое вы получаете, это странно. Я не уверен, что это проблема. Попробуйте вставить что-нибудь genre_id и посмотреть, что произойдет.

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

1. верно, но даже после указания genre_id это не сработало. Мне пришлось отбросить таблицу и воссоздать новую. У меня такое поведение в первый раз, хотя я работал с MS SQL, Oracle и MySQL.

2. @Anthony это определенно похоже на ошибку mysql или повреждение таблицы. Вот почему я поставил это большое НО; потому что я не думал, что это обязательно проблема, с которой вы столкнулись в это время, хотя в вашем запросе определенно была проблема.

Ответ №3:

Похоже, в mysql была обнаружена ошибка в этой ситуации. http://bugs.mysql.com/bug.php?id=35602 Какую версию mysql вы используете?

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

1. Я использую последнюю версию wamp, которая имеет MySQL 5.5.16

Ответ №4:

Похоже, это ошибка MySQL.