после UPDATE пропадает запись ;)

zerkms

TDD infected
Команда форума
после UPDATE пропадает запись ;)

Код:
#
# Structure for the `menu_menuitem` table : 
#

DROP TABLE IF EXISTS `menu_menuitem`;

CREATE TABLE `menu_menuitem` (
  `id` int(11) NOT NULL auto_increment,
  `parent_id` int(10) unsigned default '0',
  `type_id` int(10) unsigned default NULL,
  `menu_id` int(10) unsigned default NULL,
  `title` varchar(255) NOT NULL default '',
  `order` int(10) unsigned default '0',
  `obj_id` int(10) unsigned default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=cp1251 PACK_KEYS=0;

#
# Data for the `menu_menuitem` table  (LIMIT 0,500)
#

INSERT INTO `menu_menuitem` (`id`, `parent_id`, `type_id`, `menu_id`, `title`, `order`, `obj_id`) VALUES 
  (1,0,2,5,'Новости',1,661),
  (2,0,2,5,'Страницы',2,662),
  (3,0,2,5,'Каталог',3,663),
  (4,0,2,5,'Галерея',4,664),
  (5,0,2,5,'Пользователи',5,665),
  (6,0,2,5,'Панель управления',7,666),
  (7,0,2,5,'Сообщения',8,815),
  (8,0,2,5,'Форум',9,888);

COMMIT;

mysql> select * from menu_menuitem;
+----+-----------+---------+---------+-------------------+-------+--------+
| id | parent_id | type_id | menu_id | title             | order | obj_id |
+----+-----------+---------+---------+-------------------+-------+--------+
|  1 |         0 |       2 |       5 | Новости           |     1 |    661 |
|  2 |         0 |       2 |       5 | Страницы          |     2 |    662 |
|  3 |         0 |       2 |       5 | Каталог           |     3 |    663 |
|  4 |         0 |       2 |       5 | Галерея           |     4 |    664 |
|  5 |         0 |       2 |       5 | Пользователи      |     5 |    665 |
|  6 |         0 |       2 |       5 | Панель управления |     7 |    666 |
|  7 |         0 |       2 |       5 | Сообщения         |     8 |    815 |
|  8 |         0 |       2 |       5 | Форум             |     9 |    888 |
+----+-----------+---------+---------+-------------------+-------+--------+
8 rows in set (0.00 sec)

mysql> UPDATE  `menu_menuItem` SET `order` = 1, `parent_id` = '6' WHERE `id` = '8';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from menu_menuitem;
+----+-----------+---------+---------+-------------------+-------+--------+
| id | parent_id | type_id | menu_id | title             | order | obj_id |
+----+-----------+---------+---------+-------------------+-------+--------+
|  1 |         0 |       2 |       5 | Новости           |     1 |    661 |
|  2 |         0 |       2 |       5 | Страницы          |     2 |    662 |
|  3 |         0 |       2 |       5 | Каталог           |     3 |    663 |
|  4 |         0 |       2 |       5 | Галерея           |     4 |    664 |
|  5 |         0 |       2 |       5 | Пользователи      |     5 |    665 |
|  6 |         0 |       2 |       5 | Панель управления |     7 |    666 |
|  7 |         0 |       2 |       5 | Сообщения         |     8 |    815 |
+----+-----------+---------+---------+-------------------+-------+--------+
7 rows in set (0.00 sec)
в этом месте перезапускаем мускул:

Код:
mysql> set names cp866;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
mysql> set names cp866;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1
Current database: mzz

Query OK, 0 rows affected (0.20 sec)

mysql> select * from menu_menuitem;
+----+-----------+---------+---------+-------------------+-------+--------+
| id | parent_id | type_id | menu_id | title             | order | obj_id |
+----+-----------+---------+---------+-------------------+-------+--------+
|  1 |         0 |       2 |       5 | Новости           |     1 |    661 |
|  2 |         0 |       2 |       5 | Страницы          |     2 |    662 |
|  3 |         0 |       2 |       5 | Каталог           |     3 |    663 |
|  4 |         0 |       2 |       5 | Галерея           |     4 |    664 |
|  5 |         0 |       2 |       5 | Пользователи      |     5 |    665 |
|  6 |         0 |       2 |       5 | Панель управления |     7 |    666 |
|  7 |         0 |       2 |       5 | Сообщения         |     8 |    815 |
|  8 |         6 |       2 |       5 | Форум             |     1 |    888 |
+----+-----------+---------+---------+-------------------+-------+--------+
8 rows in set (0.00 sec)
некоторая служебная инфа:

Код:
mysql> select version();
+-------------------------+
| version()               |
+-------------------------+
| 4.1.22-community-nt-log |
+-------------------------+
1 row in set (0.00 sec)

mysql> show variables like '%cache%';
+------------------------------+------------+
| Variable_name                | Value      |
+------------------------------+------------+
| binlog_cache_size            | 32768      |
| have_query_cache             | YES        |
| key_cache_age_threshold      | 300        |
| key_cache_block_size         | 1024       |
| key_cache_division_limit     | 100        |
| max_binlog_cache_size        | 4294967295 |
| query_cache_limit            | 10485760   |
| query_cache_min_res_unit     | 4096       |
| query_cache_size             | 20971520   |
| query_cache_type             | DEMAND     |
| query_cache_wlock_invalidate | OFF        |
| table_cache                  | 64         |
| thread_cache_size            | 0          |
+------------------------------+------------+
13 rows in set (0.00 sec)

mysql> show status like 'qcach%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 1        |
| Qcache_free_memory      | 20962728 |
| Qcache_hits             | 0        |
| Qcache_inserts          | 0        |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 2        |
| Qcache_queries_in_cache | 0        |
| Qcache_total_blocks     | 1        |
+-------------------------+----------+
8 rows in set (0.00 sec)
как так?!?!? ;)

ps: также было проверено и на 5.0.45-community-nt

-~{}~ 27.10.07 11:52:

UPD: ОС - виндовс, если запрос:
UPDATE `menu_menuitem` SET `order` = 1, `parent_id` = '6' WHERE `id` = '8';
тогда ничего не пропадает ;)
+
Код:
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+
1 row in set (0.00 sec)
-~{}~ 27.10.07 12:05:

новые подробности:
select * from menu_menuitem; возвращает 7 записей
select * from menu_menuItem; возвращает 8 записей
 

Dl

Новичок
Может, это имеет значение:
Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive. Note that if you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive filesystem and access MyISAM tablenames using different lettercases, index corruption may result.
 

zerkms

TDD infected
Команда форума
Может, это имеет значение:
нет, не имеет
ты пробовал читать это предупреждение? ;) наличие похожих слов ещё не значит, что предложение относится к вопросу ;)
 

fixxxer

К.О.
Партнер клуба
а мне кажется что относится, все таки (проверить, правда, не могу - под рукой нет ничего с case-insensitive filesystem). табличку проверял?
 

zerkms

TDD infected
Команда форума
Mr_Max
мой

вот только непонятно почему света упомянула регистрочувствительный к именам в фс макось
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
странно...
у меня на
| 4.1.22-community-nt-log |
все ок...

-~{}~ 30.10.07 03:07:

Может быть причина именно в настройках MySQL-я?
Я особо его не "подкручивал". Конфигурация по умолчанию.
(Кроме lower_case_table_names)
+------------------------------+------------+
| Variable_name | Value |
+------------------------------+------------+
| binlog_cache_size | 32768 |
| have_query_cache | YES |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| max_binlog_cache_size | 4294967295 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| table_cache | 256 |
| thread_cache_size | 8 |
+------------------------------+------------+

+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Qcache_free_blocks | 0 |
| Qcache_free_memory | 0 |
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 0 |
| Qcache_queries_in_cache | 0 |
| Qcache_total_blocks | 0 |
+-------------------------+-------+

+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
 

Pigmeich

Новичок
zerkms
Почему ты первую транзакцию закомитил, а вторую нет?

А?

-~{}~ 30.10.07 08:59:

Вот и залокались данный второй транзацкии.
 

svetasmirnova

маленький монстрик
>вот только непонятно почему света упомянула регистрочувствительный к именам в фс макось
Она регистронечувсвительная почти как Windows.
Pigmeich
У него таблица MyISAM
 

fixxxer

К.О.
Партнер клуба
>Она регистронечувсвительная почти как Windows.

Них..себе! Опа! (с)
надо же - тогда есть на чем проверить :)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
zerkms
ситуация прояснилась.

Создал пустую базу. Ошибка возникает такая-же

Вчера тестил, видать левой ногой, и в придачу на старой когда-то созданной базе

Извините за неточности с моей стороны.
 
Сверху