02.12.2018, 02:46
|
Аспирант
|
|
Регистрация: 07.10.2018
Сообщений: 75
|
|
Значения элементов поля "id" в таблице MySQL
Здравствуйте в очередной раз, уважаемые пользователи сего сайта!
Вчера столкнулся с такой проблемой:
В MySQL создал таблицу с некоторым названием, в которую добавил поле с названием "id", назначил ему автоинкремент (что делается наверное во всех подобных случаях) и стал заполнять эту таблицу всякими разными элементами...
Ну автоинкремент не подвёл меня к счастью (за что ему огромнейшее спасибо), НО...........
КОГДА Я В ПОРЯДКЕ ОБУЧЕНИЯ/ЭКСПЕРИМЕНТА УДАЛЯЮ, СКАЖЕМ 1-Й (ЛИБО 2-Й) ЭЛЕМЕНТ ИЗ 3-Х (ЛИБО БОЛЕЕ) ЭЛЕМЕНТОВ, ТО ЗНАЧЕНИЯ СТОЛБЦА "ID", ПО ЛОГИКЕ ВЕЩЕЙ, ДОЛЖНЫ ОБНОВЛЯТЬСЯ ТАК, ЧТОБЫ В КОНЕЧНОМ ИТОГЕ ОНИ СНОВА ВЫГЛЯДЕЛИ ТАК: [1, 2, 3,......N].
ВОПРОС № 1: ПОЧЕМУ ЭТОГО НЕ ПРОИСХОДИТ?
ВОПРОС № 2: КАК ЭТО ИСПРАВИТЬ?
|
|
02.12.2018, 05:56
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от garrip91
|
ПОЧЕМУ ЭТОГО НЕ ПРОИСХОДИТ?
|
Домашнее задание - при создании таблицы и определения поля как поле с автоинкрементом, какие еще свойства при этом получает это поле?
Сообщение от garrip91
|
КАК ЭТО ИСПРАВИТЬ?
|
После выполнения домашнего задания ответить на вопрос - нужно ли это делать?
|
|
02.12.2018, 17:03
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Не используйте личку, ваша тема не тот случай, когда она нужна.
Все верно - "A_I", это поле с автоинкрементом, а "PRIMARY" означает, что это первичный ключ и если посмотреть в РМА индексы таблицы, то можно видеть, что данное поле будет иметь уникальные значения (уникальный индекс). При этом не важно как именуется поле, это не обязательно id должно быть, можете назвать его как душе угодно. Имя id (близкое к этому) выбирают исключительно для логического восприятия. Это сокращение от identifier - идентификатор, а идентификатор, это признак (или набор признаков), которые являясь уникальными позволяют идентифицировать объект/сущность/итд. У вас также имеется такой идентификатор - паспорт, в котором есть серия и номер, которые являются уникальными (не повторяющимися) признаками этого документа. По этому идентификатору можно с легкостью определить владельца паспорта и его подноготную.
Вопрос - можно или нельзя после смерти использовать серию и номер паспорта усопшего при выдачи паспорта другому лицу и почему?
Ваш код изобилует детскими ошибками (это я о предыдущей теме), и ноги этих ошибок растут от того, что изучать язык вы хотите через каку. Не зная простых основ языка (а SQL тоже язык как и РНР), начинаете решать задачи, которые нужно решать после изучения основ.
|
|
02.12.2018, 22:00
|
Аспирант
|
|
Регистрация: 07.10.2018
Сообщений: 75
|
|
Насчёт лички - принял к сведению, больше так не буду (как говорят провинившиеся дети ).
Насчёт главного момента...
Полностью согласен с уместностью примера с усопшим (очень оригинально, кстати, и не каждый бы до этого додумался - !_ЗДЕСЬ_САРКАЗМА_НЕТ_!).
Но всё же, неужели применительно к данному случаю не существует ни одного способа присвоения значений "id" (наших так называемых "усопших") новым элементам???
Дико извиняюсь конечно, но я сейчас нахожусь в процессе обучения и именно в данный момент весь мой процесс обучения "заморожен" из-за этой проблемы с "усопшими" ((
|
|
03.12.2018, 06:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от garrip91
|
"заморожен" из-за этой проблемы
|
А где тут проблема?
Обучение предполагает обязательное изучение предмета, и если изучать, то могут возникать вопросы только по сложным ситуациям, скажем так "непонятных".
Если в запросе для уникального первичного поля указать не null значение, а конкретное, то SQL выдаст ошибку, если такое значение уже есть в базе, или вставит запись в базу, если такого нет. Если в запросе указано игнорировать дубликаты, то данная запись в базе будет обновлена.
Первичный ключ с автоинкрементом на то и призван быть уникальным, чтобы идентифицировать сущности, поэтому использовать уже использованные значения, это значит с легкостью можно нарушить целостность данных в базе или поставить раком пользователей.
Интеллигентная дама покупает у вас в интернет-магазине, который торгует товарами от и до, ароматы бренда "Вань Лянь", бережно храня у себя ссылку на этот товар, который в магазине под id = 13. Буйвол крестьянина Вань Лянь вытоптал в его огороде траву и поставки зелья в магазин прекратились. Но другой бренд "Хунь Линь" предлагает вам исключительную вещь - фаллоимитатор соответствующий канонам ин и янь, и феншую, который вы выставляете в магазине под освободившемся id 13.
Последняя капля аромата у дамы источила благоухания, а дамам свойственно хотеть благоухать всегда, и по этой причине она извлекает драгоценную ссылку на бренд "Вань Лянь", напрягая браузер с придыханием попадает на страницу за вожделенным. Но что это!? .... Гугл в шоке, дама в обмороке.
Ну не повезло мадам, чертова дюжина же или все же владелец магазина с головой не дружит?
Последний раз редактировалось laimas, 03.12.2018 в 06:22.
|
|
03.12.2018, 07:27
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от garrip91
|
очень оригинально, кстати
|
Ничего оригинального, это естественное, что вас окружает сплошь и рядом. Проблема в зацикливании и не желании (умения) абстрагироваться. Компьютер, этот тот ящик, который позволил нам оцифровать реальность - позволяет производить расчеты не карандашом в тетрадке, имитировать сложные физические процессы, иметь искусственный интеллект. Но оцифровывает человек, опираясь на свои знания и жизненный опыт, без человека компьютер, это просто ящик без мозгов. То есть, для вас кем-то уже созданы языки, которые имеют инструкции позволяющие производить как простые (однозначные) операции так и сложные операции с ветвлениями, которые определяются условиями. Эти языки также описывают различный набор данных, которыми мы пользуемся и в реальности. Ваша задача сводится к тому, чтобы используя язык оцифровать реальную задачу для ящика с процессором. Но чтобы это сделать нужно изучать инструкции, типы данных, операции над данными.
Самое ценное для студента заочника, это методичка позволяющая изучать предмет последовательно, не забегая вперед. Вас же не заставляли в первом классе решать интегральные уравнения. Если бы заставляли, то вы бы дойдя до десятого оставались бы неучем, и то что дважды два четыре было бы для вас открытием. А судя по задачам которые вы решаете после сомнительных видео уроков и задаваемым вопросам, вы обучение производите через задницу, то есть методики нет и близко.
Изучать предмет можно на любых носителях, видео материал не исключение. Но я могу заключить пари, что вы не найдете в сети сериал по языку программирования начиная от его рождества и заканчивая его распятием. В мультиках о языке не будет всех тех подробностей и интонаций, которые есть в оригинале, сценарий всегда есть урезанная версия оригинального произведения. А если еще и сценарист плохой, вместо оригинала сценарист представляет свою трактовку, сценарий изобилует художественными домыслами, то это кода. Такое видео также вредно как и Дом 2, Камеди Клаб, Малаховы и прочие видео помои.
Полезные видео уроки, это качественный материал на какие-то актуальные темы, но у зрителя при этом уже должен быть определенный базис. Если вы думаете, что изучите материал исключительно по мультикам жуя попкорн и не заглядывая в первоисточники, то это заблуждение.
|
|
|
|