- MySQL: пропадает auto_increment при импорте во всех таблицах
- silent3250
- Mr_Max
- silent3250
- zerkms
- silent3250
- zerkms
- zerkms
- zerkms
- silent3250
- zerkms
- silent3250
- zerkms
- silent3250
- zed212
- Форум пользователей MySQL
- #1 16.09.2008 23:27:16
- Не работает auto_increment в запросе вида insert . select
- #2 17.09.2008 00:15:42
- Re: Не работает auto_increment в запросе вида insert . select
- #3 17.09.2008 09:01:03
- Re: Не работает auto_increment в запросе вида insert . select
- Board footer
- Как восстановить AUTO_INCREMENT для столбца с ID
MySQL: пропадает auto_increment при импорте во всех таблицах
silent3250
Новичок
MySQL: пропадает auto_increment при импорте во всех таблицах
подскажите что может быть? переношу дамп с MySQL 5.0.45 на 5.0.51
в дампе auto_increment есть, при импорте дампа его уже нет
в ручную 140 таблиц переделывать – не вариант.
делаю дамп на phpMyAdmin – 2.11.2.2, закачиваю на phpMyAdmin – 2.11.7
пробовал через shell
mysql -u[login] -p[pass] -f[db] —
на всяк случай структура одной из таблиц при экспорте
CREATE TABLE IF NOT EXISTS `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
`category` varchar(20) default ‘0’,
`section` int(4) NOT NULL default ‘0’,
`status` int(10) NOT NULL,
`adddate` int(10) NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;
INSERT INTO `city` (`id`, `title`, `category`, `section`, `status`, `adddate`, `user`) VALUES
(1, ‘Moscow’, ’14’, 2, 0, 1210795200, 0);
интересно почему
`id` int(11) NOT NULL,
а не
`id` int(11) NOT NULL auto_increment,
может все дело в phpMyAdmin – 2.11.2.2?
Mr_Max
Первый класс. Зимние каникулы ^_^
silent3250
SHOW CREATE `city`
из консоли?
Той таблицы, что експортируешь.
silent3250
Новичок
show create table ‘city’
CREATE TABLE `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
`category` varchar(20) default ‘0’,
`section` int(4) NOT NULL default ‘0’,
`status` int(10) NOT NULL,
`adddate` int(10) NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251
странно.. auto_increment у ID нет, но значения ведь увеличиваются, и когда просматриваю через phpmyadmin там стоит auto_increment
пробовал и через EMS SQL Manager и phpmyadmin другой поставил, всеравно без auto_increment экспортируется
неужели никто не знает?
Продвинутый новичок
zerkms
TDD infected
ты сам показал show create table
автоинкремента там нет. если у тебя есть очки — можешь одеть их и сам убедиться, что нету в таблице автоинкремента.
и чёрт побери логично, что дамп создаётся без автоинкремента и подымается на другом сервере — тоже без автоинкремента.
silent3250
Новичок
Dovg
через консоль я посмотрел и написал результат show create table
zerkms
очков у меня нет, но id автоинкрементный, он автоинкрементится при каждом добавлении информации в таблицу, то что он автоинкрементненный это 100%, почему он становится не автоинкрементненный при экспорте хз.
zerkms
TDD infected
show create table ‘city’
CREATE TABLE `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
`category` varchar(20) default ‘0’,
`section` int(4) NOT NULL default ‘0’,
`status` int(10) NOT NULL,
`adddate` int(10) NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251
never knows best
zerkms
блин, не тупи
CREATE TABLE `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
`category` varchar(20) default ‘0’,
`section` int(4) NOT NULL default ‘0’,
`status` int(10) NOT NULL,
`adddate` int(10) NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251
Человек пишет: у него есть автоинкремент в таблице
dive now, work later
silent3250, мне даже не лень было.
| city | CREATE TABLE `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
`category` varchar(20) default ‘0’,
`section` int(4) NOT NULL default ‘0’,
`status` int(10) NOT NULL,
`adddate` int(10) NOT NULL,
`user` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251
mysql> insert into city (status, adddate, user) values (1,1,1);
ERROR 1364 (HY000): Field ‘id’ doesn’t have a default value
так шо очки все-таки придется одеть .
zerkms
TDD infected
не красуется
AUTO_INCREMENT
тогда и будешь бросаться «тупи-не тупи».
а пока — здесь тупит только один человек, который вместо попытки сделать поле автоинкрементным, или хотя бы попытаться это сделать и показать результаты — уже второй день плачется на форуме.
never knows best
silent3250
самое простое решение (quick & dirty) это
сделать полный дамп
потом пройтись заменить регэкспом
а потом простым реплейсом по тексте
`id` int(11) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
а потом е*атся с ошибками
Автор оригинала: zerkms
kode
как только найдёшь хоть одну адекватную причину, по которой после
не красуется
AUTO_INCREMENT
тогда и будешь бросаться «тупи-не тупи».
а пока — здесь тупит только один человек, который вместо попытки сделать поле автоинкрементным, или хотя бы попытаться это сделать и показать результаты — уже второй день плачется на форуме.
zerkms
TDD infected
silent3250
Новичок
специально для тебя http://web-silent.ru/i/increment.jpg
или ты думаеш я такой тупой и не знаю как поле сделать автоинкрементным
dive now, work later
zerkms
TDD infected
never knows best
silent3250
попробуй mysqldump c ключём —compatible=mysql50, —compatible=mysql41, —compatible=mysql51
silent3250
Новичок
да все уже добавлено, все работает, все автоинкрементится, но при экспорте автоинкремент пропадает
консоль:
CREATE TABLE city2 (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) default NULL,
PRIMARY KEY (id)
)
INSERT INTO city2 VALUES (NULL,’123456789′);
INSERT INTO city2 VALUES (NULL,’987654321′);
show create table ‘city2’
CREATE TABLE `city` (
`id` int(11) NOT NULL,
`title` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251
zerkms
TDD infected
silent3250
Новичок
zed212
Новичок
Ребят подскажите не магу сделать в bd.txt русскую кодирвку стран в bd.txt `countries` какую я только кодировку не пробовал в место русских стран на сайте видно вот это . или эроглефы, вот пропись кодировки:
—
— Структура таблицы `countries`
—
CREATE TABLE `countries` (
`id` bigint(20) NOT NULL auto_increment,
`name` varchar(24) default NULL,
`code` bigint(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=113 ;
—
— Дамп данных таблицы `countries`
—
INSERT INTO `countries` VALUES(1, ‘Россия’, 40);
INSERT INTO `countries` VALUES(2, ‘Италия’, 39);
INSERT INTO `countries` VALUES(8, ‘Англия’, 44);
INSERT INTO `countries` VALUES(14, ‘Азербайджан’, 994);
INSERT INTO `countries` VALUES(15, ‘Бахрейн’, 973);
INSERT INTO `countries` VALUES(17, ‘Бельгия’, 32);
INSERT INTO `countries` VALUES(19, ‘Бразилия’, 55);
INSERT INTO `countries` VALUES(21, ‘Польша’, 284);
INSERT INTO `countries` VALUES(22, ‘Румыния’, 673);
INSERT INTO `countries` VALUES(23, ‘Грузия’, 359);
INSERT INTO `countries` VALUES(27, ‘Чили’, 56);
INSERT INTO `countries` VALUES(28, ‘Китай’, 86);
INSERT INTO `countries` VALUES(30, ‘Cote d Ivoire’, 225);
INSERT INTO `countries` VALUES(31, ‘Крит’, 385);
INSERT INTO `countries` VALUES(32, ‘Кипр’, 357);
INSERT INTO `countries` VALUES(34, ‘Чехия’, 420);
INSERT INTO `countries` VALUES(35, ‘Дания’, 45);
INSERT INTO `countries` VALUES(36, ‘Египет’, 20);
INSERT INTO `countries` VALUES(37, ‘Литва’, 372);
INSERT INTO `countries` VALUES(38, ‘Эстония’, 251);
INSERT INTO `countries` VALUES(39, ‘Белоруссия’, 298);
INSERT INTO `countries` VALUES(40, ‘Украина’, 679);
INSERT INTO `countries` VALUES(41, ‘Финляндия’, 358);
INSERT INTO `countries` VALUES(42, ‘Франция’, 33);
INSERT INTO `countries` VALUES(43, ‘Джоржия’, 995);
INSERT INTO `countries` VALUES(44, ‘Германия’, 49);
INSERT INTO `countries` VALUES(45, ‘Гибралтар’, 350);
INSERT INTO `countries` VALUES(46, ‘Греция’, 30);
INSERT INTO `countries` VALUES(47, ‘Гонг конг’, 852);
INSERT INTO `countries` VALUES(48, ‘Венгрия’, 36);
INSERT INTO `countries` VALUES(49, ‘Индия’, 91);
INSERT INTO `countries` VALUES(50, ‘Япония’, 81);
INSERT INTO `countries` VALUES(51, ‘Иерусалим’, 2);
INSERT INTO `countries` VALUES(52, ‘Молдова’, 373);
INSERT INTO `countries` VALUES(53, ‘Нидерланды’, 31);
INSERT INTO `countries` VALUES(54, ‘Норвегия’, 47);
INSERT INTO `countries` VALUES(56, ‘Ю.А.Р’, 7);
INSERT INTO `countries` VALUES(57, ‘Саудовская Аравия’, 966);
INSERT INTO `countries` VALUES(59, ‘Испания’, 34);
INSERT INTO `countries` VALUES(60, ‘U.S.A’, 1);
INSERT INTO `countries` VALUES(61, ‘Канада’, 1);
INSERT INTO `countries` VALUES(62, ‘Австралия’, 61);
INSERT INTO `countries` VALUES(64, ‘Сингапур’, 65);
в чём ошибка может вы поможете в место Россия на сайте идёт . мне кажется ошибка идёт в структуре вот тут:
— Структура таблицы `countries`
—
CREATE TABLE `countries` (
`id` bigint(20) NOT NULL auto_increment,
`name` varchar(24) default NULL,
`code` bigint(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=113 ;
но какая не пойму при импорте вот этого кода через Выполнить SQL-запрос(ы) к базе данных мне сам SQL выдаёт такие строки:
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=113 ;# MySQL вернула пустой результат (т.е. ноль строк).
—
— Дамп данных таблицы `countries`
—
INSERT INTO `countries` VALUES(1, ‘Россия’, 40);# Затронута 1 строка.
INSERT INTO `countries` VALUES(2, ‘Италия’, 39);# Затронута 1 строка.
INSERT INTO `countries` VALUES(8, ‘Англия’, 44);# Затронута 1 строка.
INSERT INTO `countries` VALUES(14, ‘Азербайджан’, 994);# Затронута 1 строка.
INSERT INTO `countries` VALUES(15, ‘Бахрейн’, 973);# Затронута 1 строка.
INSERT INTO `countries` VALUES(17, ‘Бельгия’, 32);# Затронута 1 строка.
INSERT INTO `countries` VALUES(19, ‘Бразилия’, 55);# Затронута 1 строка. помогите выявить.
Источник
Форум пользователей MySQL
Задавайте вопросы, мы ответим
Страниц: 1
#1 16.09.2008 23:27:16
Не работает auto_increment в запросе вида insert . select
В общем есть у меня таблички form и element и процедурка для копирования формы. Полный тестовый скрипт следует
Duplicate entry ‘3’ for key 1
До копирования в таблице element счетчик стоит на 3, см. занесение тестовый данных. При копировании что делаем:
Копируем запись формы все копируем, имя используем новое переданное через параметр. Получаем ID только что вставленной формы.
Копируем элементы старой формы вместо FORM_ID подставляем ID только что добавленный.
Данный скрипт ДОЛЖЕН работать, аналогичный работает на MS SQL, но почему то у меня выдает ошибку. Видимо не происходит автоинкремента в последнем insert запросе.
PS
MySQL 5.0.22 Windows
#2 17.09.2008 00:15:42
Re: Не работает auto_increment в запросе вида insert . select
Проверил, код работает. 5.0.51b, ubuntu
Обновите сервер, нет смысла разрабатывать продукт на том, что не работает.
#3 17.09.2008 09:01:03
Re: Не работает auto_increment в запросе вида insert . select
ОК, вы меня убедили
Страниц: 1
Board footer
Работает на PunBB
© Copyright 2002–2008 Rickard Andersson
Источник
Как восстановить AUTO_INCREMENT для столбца с ID
В результате чего отвалился AUTO_INCREMENT.
Пытался исправить (удалить ключ AUTO_INCREMENT):
Результат: Duplicate column name ‘id_catsubcat’.
Подскажите пожалуйста как сделать AUTO_INCREMENT для id_catsubcat?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как в новой версии MySQL назначить AUTO_INCREMENT для поля id
Парни как в новой версии MySQL (3.3.5 и выше) заставить поле id заполнятся автоматически?
Как обновлять AUTO_INCREMENT?
У меня есть таблица, в ней автоикрементируемое поле ID, после удаление записи нумерация в этом поле.
Как сбросить AUTO_INCREMENT?
День добрый, Нужно удалить все записи в таблице + сбросить счетчик. Удалить все записи получается.
Как получить AUTO_INCREMENT таблицы?
Какой запрос отправить для того, чтобы получить AUTO_INCREMENT таблицы?
Уже не помню всего синтаксиса ALTER TABLE, но если не важна существующая индексация, то самый просто способ — это удалить столбец и добавить его заново, что-то типа:
ALTER TABLE dl DROP COLUMN `id_catsubcat`, ADD `id_catsubcat` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
Вы же пытаетесь при существующем столбце добавить столбец с тем же именем, удаляя не столбец, а «ключ»
Добавлено через 18 минут
Если память не изменяет, то в идеале (чтоб не удалять никаких данных) Вам нужно это:
alter table dl change id_catsubcat id_catsubcat int primary key auto_increment;
Источник