powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Копирование БД с AUTOINCREMENT полями
8 сообщений из 8, страница 1 из 1
Копирование БД с AUTOINCREMENT полями
    #32243186
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, есть такой вопрос:

если получить дамп таблицы БД
Код: plaintext
1.
2.
3.
4.
create table QWER
(ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
QwerName VARCHAR( 50 ),
QwerImage VARCHAR( 50 ),
PRIMARY KEY(ID));

в текстовый файл
т.е. DROP,CREATE,INSERT,INSERT,INSERT,

и перенести его в другую БД
вставятся ли записи с теми же идентификаторами или будут созданы новые

например таблица была такая

ID_________QwerName_____QwerImage
1__________Чегото1_______Чегото1.jpeg
2__________Чегото2_______Чегото2.jpeg
5__________Чегото5_______Чегото6.jpeg
9__________Чегото9_______Чегото9.jpeg

и вот если попытаться сделать тоже самое с продуктами M$, то

для полей автоинкрементальных не удастся задать значение

а как обстоят дела с MySQL?
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32243272
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C теми же.

в mysql если сделаешь вставку , где укажешь _явное_ значение для автоинкрементального поля, оно вставится, как ты указал. Поэтому когда сделаешь backup, потом при восстановлении получишь те же значения в автоинкр. полях
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32243280
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все будет нормально, если не будет повторных значений, в этом случае будет присвоин уникальный номер, соответственно, если ошибка возникнет в самом начале скрипта, то могут "поплыть" все значения...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
mysql> CREATE TABLE animals (
    ->     id MEDIUMINT NOT NULL AUTO_INCREMENT,
    ->     name CHAR( 30 ) NOT NULL,
    ->     PRIMARY KEY (id)
    -> );
Query OK,  0  rows affected ( 0 . 00  sec)

mysql> INSERT INTO animals (id, name) VALUES ( 5 , 'Dog');
Query OK,  1  row affected ( 0 . 00  sec)

mysql> INSERT INTO animals (id, name) VALUES ( 8 , 'Cat');
Query OK,  1  row affected ( 0 . 01  sec)

mysql> select * from animals;
+ ----+------+
 
| id | name |
+ ----+------+
 
|   5  | Dog  |
|   8  | Cat  |
+ ----+------+
 
 2  rows in set ( 0 . 00  sec)

mahoune
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32244512
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и еще я замечал, что если в скрипте закачивания данных в автоинкрементное поле пытаешься вставить 0, то вставляется вовсе не 0, а следующее значение счетчика. От этого может не удастся накатить такой скрипт, потому что дальше может быть такое же значение уникального индекса.
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32244637
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только по моему для автоинкремента надо указывать не 0 , а NULL.
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32244644
_JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dla Microsoft SQL est commanda SET INDENTITY INSERT ON - naskolko ya pomnu chto vrode togo - ponimayu chto sprashivali ne ob etom - no tak prosto, k slovu.
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32244907
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:
Код: plaintext
ALTER TABLE tbl_name AUTO_INCREMENT =  100 

mahoune
...
Рейтинг: 0 / 0
Копирование БД с AUTOINCREMENT полями
    #32245023
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Groove,

если в автоинкрементном поле указать null, то оно вставит следующее значение счетчика. А Вам надо указывать конкретные значения идентификаторов.

так вот я говорю, что у меня бывало, что если было написано 0 (то есть вовсе не null, а конкретно 0, идентификатор такой был у меня в справочнике), то оно этот 0 не вставляло, а вело себя как будто там null.

может быть, это уже исправлено, я просто опыт хотел передать.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Копирование БД с AUTOINCREMENT полями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]