powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL for Visual Studio (AUTO_INCREMENT)
51 сообщений из 51, показаны все 3 страниц
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134584
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую MS Visual Studio 2013 (Professional edition), MySQL for Visual Studio 1.2.5 и MySQL 5.5.46 (Ubuntu).
Пришлось сделать перенос большого объема связанных между собой данных в MySQL и заметил одну принципиальную ошибку MySQL for Visual Studio (или я что-то недосмотрел): при заполнении (функция Fill соответствующего TableAdapter) данных таблицы в VS из MySQL данные заполняются, а вот информация о AUTO_INCREMENT из MySQL в соответствующее поле AutoIncrementSeed колонки таблицы VS не переносится, что приводит к катастрофическим последствиям.
Подскажите, что я делаю не так и как мне получить информацию о AUTO_INCREMENT (имеется в виду следующее свободное значение поля) в VS.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134598
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561,

Подозреваю, это надо спрашивать в подфоруме по C/C++.
Перенести топик?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134674
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftgai561,
Подозреваю, это надо спрашивать в подфоруме по C/C++.
Перенести топик?
Я думаю, не стоит, т.к. MySQL for Visual Studio разработка группы MySQL и вопрос к ним, а не к MS.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134679
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561соответствующее поле AutoIncrementSeed колонки таблицы
MySQL такого слова не знает.

gai561что приводит к катастрофическим последствиям
Значит, база спроектирована неверно.

gai561как мне получить информацию о AUTO_INCREMENT (имеется в виду следующее свободное значение поля)
Его и на сервере не удастся получить... просто потому что после его получения каким-либо способом оно изменится.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134688
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561,

Дело не в том, чья это разработка, а в том, где находятся люди, которые это используют и могут что-то подсказать.
Ну да как хотите.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134709
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясню подробнее:
в VS данные из MySQL помещаются в таблицы в памяти на локальном компе.
Добавление, изменение и удаление данных также производится на локальном компе вплоть до того момента, пока не дашь команду на перенос данных на сервер MySQL.
Теперь представьте, что есть таблица 1 с ключевым автоинкрементным полем (первое свободное например 99), таблица 2 с ключевым автоинкрементным полем (первое свободное например 999) и перекрестная таблица 3 со ссылками на таблицу 1 и таблицу 2.
По факту я:
1).
- добавляю строку в таблицу 1, поле = 1 (т.к. я не сном ни духом о 99)
- добавляю строку в таблицу 2, поле = 1 (т.к. я не сном ни духом о 99)
- добавляю строку в таблицу 3, поле1 = 1, поле2 = 1
2.) передаю информацию в MySQL, а он
- меняет значение поля в таблице 1 на 99
- меняет значение поля в таблице 2 на 999
после чего ругается о нарушении структуры данных при сохранении таблицы 3 (что естественно)
Так что БД спроектирована правильно, а ошибка на основе недостаточных данных, ведь знай я о 99 и 999, ошибки не было бы.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134714
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561БД спроектирована правильно, а ошибка на основе недостаточных данныхааа... ну дык это ошибка клиента. Вернее, того, кто его пишет. Эти твои 99 и 999 существуют только у клиента. В момент копирования данных на сервер должны быть получены с него присвоенные ID вставленным в таблицы 1 и 2 данным, и внесены соотв. изменения в данные для вставки в таблицу 3. В назначении уникальных идентификаторов сервер - первичен, клиент под него должен подстраиваться. А вовсе даже не наоборот.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134728
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, но это чушь. Исходя из этой логики удаленная автономная работа с БД в принципе невозможна. Разъясню: Вы предлагаете мне при каждом изменении любой единицы данных обращаться к серверу на запись этих изменений и повторному их считыванию - представляете, какой излишек трафика и расхода ресурсов сервера.
Да я лучше на время обработки буду монопольно использовать БД.
А задачка решается элементарно - MySQL for Visual Studio (а это по сути драйвер) кроме самих данных таблиц должен дать информацию и об AUTU_INCREMENT - и тогда проблемы нет как таковой.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134734
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Вы предлагаете мне при каждом изменении любой единицы данных обращаться к серверу на запись этих изменений и повторному их считыванию - представляете, какой излишек трафика и расхода ресурсов сервера.Не при каждом изменении, а после каждой вставки.

Существует специальная функция LAST_INSERT_ID() для получения последнего сгенеренного автоинкремента в текущей сессии.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134744
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСуществует специальная функция LAST_INSERT_ID() для получения последнего сгенеренного автоинкремента в текущей сессии.
Посмотрев Вашу ссылку (извините, но по английски "читаю и перевожу со словарем") не получил уверенности, что это именно последний генерированный код (посмотрите пример группового добавления, где max=4, а значение функции=2).
Но за предложение большое спасибо.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134751
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561miksoftСуществует специальная функция LAST_INSERT_ID() для получения последнего сгенеренного автоинкремента в текущей сессии.
Посмотрев Вашу ссылку (извините, но по английски "читаю и перевожу со словарем") не получил уверенности, что это именно последний генерированный код (посмотрите пример группового добавления, где max=4, а значение функции=2).Да, при вставке сразу нескольких записей эта функция возвращает автоинкремент для первой из них.
Поэтому, если нужны все значения, вставку придется выполнять по одной записи.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134763
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Исходя из этой логики удаленная автономная работа с БД в принципе невозможна.
Вот это, извините, и есть чушь. Работайте в своё удовольствие, пока не померзеет...

Но вот когда возникает желание выдать результаты своей работы обратно на сервер, категорически нельзя игнорировать то, что состояние данных на сервере имеет полное право измениться. И надо приспосабливать свои результаты к тому, что есть на сервере, а не наоборот. Дабы не наломать дров.

gai561Посмотрев Вашу ссылку (извините, но по английски "читаю и перевожу со словарем") не получил уверенности, что это именно последний генерированный код (посмотрите пример группового добавления, где max=4, а значение функции=2)Попробуйте в дополнение к чтению и переводу до конца понять то, что прочитано и переведено.

gai561Да я лучше на время обработки буду монопольно использовать БД.
Пжалста... тогда все проблемы, описанные выше, уйдут. А заодно придёт горячая благодарность от других пользователей базы. Особенно от тех, кого срезали на середине сессии.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134903
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНо вот когда возникает желание выдать результаты своей работы обратно на сервер... Дабы не наломать дров.
AkinaПжалста... тогда все проблемы, описанные выше, уйдут. А заодно придёт горячая благодарность от других пользователей базы. Особенно от тех, кого срезали на середине сессии.
Извините, но Вы далеки от реальности. Когда я, как администратор, делаю миграцию большого объема данных с одного сервера на другой, стараюсь по максимуму использовать ресурсы локального компьютера, а не загружать сервер. При этом я монополизирую одну БД (пользователям которой действительно придется подождать), зато пользователи других БД скажут мне спасибо за разгруженный сервер.
gai561Попробуйте в дополнение к чтению и переводу до конца понять то, что прочитано и переведено.
А о чем это, я не понял.
На этом этот никому ненужный спор "зачем" я прекращаю. Каждый делает то, что нужно ему.
Прошу помощи в поставленном мной в первом посте вопросе.
Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134961
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561я, как администратор, делаю миграцию большого объема данных с одного сервера на другойПредлагаю различать обычную работу пользователей (при которой той же функции LAST_INSERT_ID() вполне достаточно) и "миграцию большого объема данных".
Сейчас о чем именно речь?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39134970
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Когда я, как администратор, делаю миграцию большого объема данных с одного сервера на другой, стараюсь по максимуму использовать ресурсы локального компьютера, а не загружать сервер.

При миграции с сервера на сервер я вообще не понимаю, для чего можно "использовать ресурсы локального компьютера". С него идёт только управление, а данные напрямую гонятся с одного сервера на другой.
Или это ни разу не миграция...
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135070
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получил предложение на другом форуме:
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'


ну это уже вариант, хотя для VS не самый приятный. Может есть решение попроще?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135086
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Получил предложение на другом форуме:
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'



ну это уже вариант, хотя для VS не самый приятный.И что вы собираетесь там увидеть по теме топика?
Ну если только оценить объем данных для миграции...gai561Может есть решение попроще?Решение какой именно задачи?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135125
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - получить значение AUTO_INCREMENT (первое свободное значение) таблицы на момент обращения к БД.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135128
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Задача - получить значение AUTO_INCREMENT (первое свободное значение) таблицы на момент обращения к БД.Про LAST_INSERT_ID() я уже писал.
Если не лочить таблицу, то другого способа нет.

Если лочить - можно взять MAX(ID) из таблицы. Но это костыль.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135129
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Задача - получить значение AUTO_INCREMENT (первое свободное значение) таблицы на момент обращения к БД.А смысл? даже немедленно после получения значения выполненный INSERT запросто может вставить ДРУГОЕ значение.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135131
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftgai561Задача - получить значение AUTO_INCREMENT (первое свободное значение) таблицы на момент обращения к БД.Про LAST_INSERT_ID() я уже писал.
Если не лочить таблицу, то другого способа нет.

Если лочить - можно взять MAX(ID) из таблицы. Но это костыль.Поправка - это была речь про последнюю вставленную запись.
А первое свободное значение - только лочить таблицу и брать MAX(ID)+1. Но, повторюсь, это костыль.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135132
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, но доступ к БД можно ограничить.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135138
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'

И что вы собираетесь там увидеть по теме топика? Ну если только оценить объем данных для миграции... Хочу заступится за данное решение - если Вы попробуете данный запрос, то увидите одно из полей Auto_Increment.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135156
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561,
и чем оно будет отличаться от last insert id ?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135169
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем, что если последнее добавление было для нескольких записей, то Вы получите ответ, отличный от реального.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135178
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи чем оно будет отличаться от last insert id ?
LAST_INSERT_ID() возвращает сгенерированное значение для первой записи последнего запроса. УЖЕ вставленное. Т.е. имеющееся в таблице.
SHOW TABLE STATUS показывает значение, которое будет первым сгенерировано при следующем запросе. Т.е. оно в таблице отсутствует.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135197
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561miksoft
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'


И что вы собираетесь там увидеть по теме топика? Ну если только оценить объем данных для миграции... Хочу заступится за данное решение - если Вы попробуете данный запрос, то увидите одно из полей Auto_Increment.Да, есть такое. Однако:
AkinaА смысл? даже немедленно после получения значения выполненный INSERT запросто может вставить ДРУГОЕ значение.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135219
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Введу упрощение задачи - только я имею доступ к БД, т.е. никто, кроме меня не может добавить запись в БД, а значит значение AUTO_INCREMENT не может измениться случайным образом.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135225
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Введу упрощение задачи - только я имею доступ к БД, т.е. никто, кроме меня не может добавить запись в БД, а значит значение AUTO_INCREMENT не может измениться случайным образом.Ну тогда берите MAX(ID)+1 для следующего номера, и всех делов.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135226
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не гарантирует правильность результата.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135229
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Это не гарантирует правильность результата.Что значит "не гарантирует" ? Вы же сами решили, что "только я имею доступ к БД". Как еще он может измениться?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135234
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Элементарно - я неделю назад удалил несколько последних записей и уже, естественно, забыл об этом.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135237
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Элементарно - я неделю назад удалил несколько последних записей и уже, естественно, забыл об этом.Ну и что?
Если это были последние записи, то MAX(ID)+1 даст верный результат.
Есди это были непоследние записи, то все равно MAX(ID)+1 даст верный результат, в том смысле, что это значение можно смело использовать для вставки в таблицу, нарушения уникальности не возникнет. Так образом, роль первичного ключа - однозначно идентифицировать запись - не будет нарушена. А то что будут пропуски, так это не имеет никакого значения, они всегда будут. Первая же откатившаяся транзакция с INSERT-ом даст пропуск. Да и в других, сугубо технологических, случаях могут возникать пропуски.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135243
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушающий да услышит. Ощущение разговора глухого с немым. Если Вам кажется данное решение достаточным, пользуйтесь. Мне оно не подходит - выше я уже объяснял почему. Пока единственное, известное мне, корректное решение, это запрос
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'


Предложены также следующие решения:
Код: sql
1.
LAST_INSERT_ID()

- некорректно, если последняя операция добавления была групповой
Код: sql
1.
MAX(ID)+1

- некорректно, если после последнего добавления записей производилось удаление записей с max значением ключа.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135257
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561,

1) а зачем вы вводите данные вручную в поле с автоинкрементом?
если уберете его из INSERT запроса, оно будет вводится автоматически.

2) можно отключить автоинкремент на время переноса данных
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135264
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Мне оно не подходит - выше я уже объяснял почему.Нет, не объяснили. Впрочем, я не настаиваю на объяснении.
gai561Пока единственное, известное мне, корректное решение, это запрос
Код: sql
1.
SHOW TABLE STATUS LIKE 'table_name'


Код: sql
1.
MAX(ID)+1


- некорректно, если после последнего добавления записей производилось удаление записей с max значением ключа.Вообще-то эти два способа должны дать один и тот же результат, если после рестарта сервера не было удаления записей с максимальным ID.

gai561
Код: sql
1.
LAST_INSERT_ID()


- некорректно, если последняя операция добавления была групповойБолее того, вызов этой функции имеет смысл только в той сессии, в которой была произведена успешная вставка записи в таблицу с автоинкрементом. В противном случае её результат не определен.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135270
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561Введу упрощение задачи - только я имею доступ к БД, т.е. никто, кроме меня не может добавить запись в БД, а значит значение AUTO_INCREMENT не может измениться случайным образом.
Наивный... поищи темы про "дырки в автоинкременте".
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135315
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561, если "только вы имеете доступ к БД", так и ведите учёт своих ключей локально (в текстовом файлике, ха-ха) - и будете железобетонно уверены, что сервер ничего "плохого" с ними не сделает. А то ишь, развели тут мути, умники. Ласт_инсерт_ид всякие, добавление по одной записи... тьпху, срамота!
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135405
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirgai561, если "только вы имеете доступ к БД", так и ведите учёт своих ключей локально (в текстовом файлике, ха-ха) - и будете железобетонно уверены, что сервер ничего "плохого" с ними не сделает. А то ишь, развели тут мути, умники. Ласт_инсерт_ид всякие, добавление по одной записи... тьпху, срамота!
Я от души пожелаю Вам авто с кондиционером, только вот без кнопочки его включения - ездите с открытыми окнами - будет прохладно.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135418
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю к предыдущему посту: несмотря на всю наивность и кажущуюся смехотворность предложения, я действительно склоняюсь к мысли, что для баз, пользователи которых общаются с помощью программ на Visual Studio, стоит отказаться от автоинкрементных ключей исходя з особенностей VS. Ха-ха.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135445
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaвадяи чем оно будет отличаться от last insert id ?
LAST_INSERT_ID() возвращает сгенерированное значение для первой записи последнего запроса. УЖЕ вставленное. Т.е. имеющееся в таблице.
SHOW TABLE STATUS показывает значение, которое будет первым сгенерировано при следующем запросе. Т.е. оно в таблице отсутствует.
ну различия не существенны, по сравнению с затратами.
ну и месту применения.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39135470
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561я действительно склоняюсь к мысли, что для баз, пользователи которых общаются с помощью программ на Visual Studio, стоит отказаться от автоинкрементных ключей исходя з особенностей VSТаки я правильно предлагал перенести топик в C/C++.
Сейчас переносить не буду. Если будет желание - перезадайте этот вопрос там.

Дабы топик не скатился во флуд, закрываю.
По технической части уже все сказали.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136109
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По техническим причинам не могу перенести сюда стартовый пост другого топика, поэтому цитирую целиком:
gai561Странное решение закрыть тему. Тема правильно называется и правильно расположена.
Для тех, кому действительно необходимо решение, публикую свое, пока не доработали MySQL for Visual Studio (или кто-то подсказал другое решение):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
static class Service
    {
        static public long Increment(string pNameTable)
        {
            serviceDataSet serviceDataSet = new serviceDataSet();
            serviceDataSet.DataSetName = "serviceDataSet";
            serviceDataSet.SchemaSerializationMode = 
                System.Data.SchemaSerializationMode.IncludeSchema;

           serviceDataSetTableAdapters.tableStatusTableAdapter tableStatusTableAdapter = 
                new serviceDataSetTableAdapters.tableStatusTableAdapter();
            tableStatusTableAdapter.ClearBeforeFill = true;
            MySql.Data.MySqlClient.MySqlCommand lComm = new MySql.Data.MySqlClient.MySqlCommand();
            lComm.CommandText = "SHOW TABLE STATUS LIKE '" + pNameTable + "'";
            tableStatusTableAdapter.Adapter.SelectCommand = lComm;
            
            tableStatusTableAdapter.Fill(serviceDataSet.tableStatus);
            if (serviceDataSet.tableStatus.Rows.Count < 1) return 1;
            serviceDataSet.tableStatusRow lRow = 
                (serviceDataSet.tableStatusRow)serviceDataSet.tableStatus.Rows[0];
            if ( (lRow.Name == pNameTable) &&
                 (lRow.Auto_increment.ToString() != "") )
                return (long)lRow.Auto_increment;
            return 1;
        }
    } 



Прошу модератора возобновить тему и перенести туда это сообщение.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136159
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяразличия не существенны
Пол младшего ребёнка в семье, и пол ребёнка, которого планируется зачать - не одно и тоже. Верно?
Вот и здесь суть та же. А ты говоришь - несущественны...
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136206
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доработал решение, теперь оно универсально - бери себе и вставляй в свой проект:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
    static class Service
    {
        static public long Increment(string pConnectionString, string pNameTable)
        {
            System.Data.DataTable tableStatus = new System.Data.DataTable();
            tableStatus.TableName = "tableStatus";

            MySql.Data.MySqlClient.MySqlDataAdapter tableStatusTableAdapter =
                 new MySql.Data.MySqlClient.MySqlDataAdapter();

            MySql.Data.MySqlClient.MySqlCommand lComm = new MySql.Data.MySqlClient.MySqlCommand();
            lComm.CommandText = "SHOW TABLE STATUS LIKE '" + pNameTable + "'";
            MySql.Data.MySqlClient.MySqlConnection lConn = new MySql.Data.MySqlClient.MySqlConnection();
            lConn.ConnectionString = pConnectionString;
            lComm.Connection = lConn;
            tableStatusTableAdapter.SelectCommand = lComm;

            tableStatusTableAdapter.Fill(tableStatus);

            if (tableStatus.Rows.Count < 1) return 1;
            System.Data.DataRow lRow = tableStatus.Rows[0];
            if ((lRow[0].ToString() == pNameTable) && (lRow[10].ToString() != ""))
            {
                ulong AutoIncrementSeed = (ulong)lRow[10];
                return (long)AutoIncrementSeed;
            }
            return 1;
        }
    }


Для получения AUTO_INCREMENT для нужной таблицы использовать вызов типа:
Код: c#
1.
myDataSet.tab1.idKeyColumn.AutoIncrementSeed = Service.Increment(Properties.Settings.Default.myConnectionString, "tab1");
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136275
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaвадяразличия не существенны
Пол младшего ребёнка в семье, и пол ребёнка, которого планируется зачать - не одно и тоже. Верно?
Вот и здесь суть та же. А ты говоришь - несущественны...
если ты знаешь в какой момент зачать, чтоб ребёнок был нужного пола, хоть первого, хоть второго
то пол первого ребёнка будет для тебя важен если тебе известно зависимость , где одним из параметром является пол первого ребенка.
а в данном случае зависимость +-1 роли не играет
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136307
gai561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Ребят, вам действительно негде пофлудить?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136316
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странное желание у ТС - это или не владение базами или показать свою значимость?
о каком трафике идет речь?
делать таким образом миграцию большого объёма данных - довольно странное решение.
можно сделать много проще и быстрее.
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136321
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561вадя
Ребят, вам действительно негде пофлудить?
есть , но здесть есть повод :)
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136428
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gai561,

а какое практическое применение сием деянием?
Узнали вы автоинкремент, дальше что с ним делаете?
...
Рейтинг: 0 / 0
MySQL for Visual Studio (AUTO_INCREMENT)
    #39136697
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovУзнали вы автоинкремент, дальше что с ним делаете?Насколько я понимаю, вся эта бодяга нужна для того, чтобы получитьнарисовать значения псевдо-автоинкрементного поля при пакетной вставке. Ну вот не хочет ТС делать пакетную загрузку + получение ключей загруженных записей - "трафика" это, видите ли, "много" съедает. Ему удобнее нагенерить ключи вручную.
...правда, при этом он почему-то забывает, что show table status отдаёт куда больше информации, чем select last_insert_id(), ну да ладно, главное, автор добился чего хотел(?).
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL for Visual Studio (AUTO_INCREMENT)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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