MySQL: INSERT INTO `test` (`test_id`) VALUES (0)
Код:
CREATE TABLE IF NOT EXISTS `test` (
`test_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`test_id`)
) ENGINE=MyISAM;
Винаги ми вмъква като стойност следващият пореден номер. С InnoDB пак е същото.
А UPDATE `test` SET `test_id` = 0 WHERE `test_id` = 1; работи.
Как мога да направя така, че още INSERT-та да ми вмъква 0?
Re:MySQL: INSERT INTO `test` (`test_id`) VALUES (0)
пробвай да пуснеш NO_AUTO_VALUE_ON_ZERO режима на MySQL, само че не ти препоръчвам да ползваш 0 за primary key, тъй като можеш да имаш доста проблеми ^_^
(иначе AUTO_INCREMENT почва от 1, просто щото е max + 1)
Re:MySQL: INSERT INTO `test` (`test_id`) VALUES (0)
Благодаря за предложението! Ще го пробвам, но в близките няколко дни няма да имам възможност.
Таблицата е за една номенклатура, която има една стойност със специално предназначение и трябва да е "забита" на нещо. 0 ми се стори подходящо (както може да е всяко друго число).
Защо ще прави проблем?
Re:MySQL: INSERT INTO `test` (`test_id`) VALUES (0)
точно заради проблема, който си описал :)
представи си, че правиш backup на таблицата, а после я restore-ваш другаде или без включената опция - тогава MySQL ще види 0-та и ще ти генерира sequence (следваща) стойност вместо 0-та
(а и в крайна сметка това е primary key, дефиниран като NOT NULL - разбира се, NULL и 0 са принципно различни, но като тип, не и като стойност)
Re:MySQL: INSERT INTO `test` (`test_id`) VALUES (0)
Още веднъж благодаря! Определено има смисъл това. Ще си сменя стойността, но 0 ми се вързваше идеално :(