0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
1

Как корректно добавить новое поле в таблицу БД?

29.01.2015, 14:03. Показов 1682. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
В общем, работаю с чужим скриптом. Мне нужно добавить одно или два поля в одну таблицу БД с помощью phpMyAdmin.
Но я не знаю, где автор скрипта использует эту таблицу. Однажды я уже сталкивался с подобной ситуацией - добавил поле и скрипт перестал правильно работать. По-моему, если память не изменяет, там неправильно работала инструкция INSERT, которая добавляла например пять полей в таблицу, а было ещё шестое - моё.
В общем, вопрос - как добавить своё поле в таблицу, чтобы чужие неизвестные мне методы гарантированно корректно обрабатывали эту таблицу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2015, 14:03
Ответы с готовыми решениями:

Добавить в существующую таблицу новое поле
Привет всем. Есть программа, работающая с БД MS Access. Юзаю ADOTable. Вопрос: можно ли программно...

Как корректно добавить поле в вывод
Всем привет! Не могу корректно вывести данные. Есть таблицы... CREATE TABLE "public"."players" (...

Как добавить новое поле в форму через js/php?
Есть html форма с одним лишь полем ввода номера телефона, я хочу добавить туда еще и поле для ввода...

Как добавить новое поле в таблице Access посредством VB?
Я работаю с таблицей Access, в которую периодически надо добавлять новые поля. Может это можно...

5
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
29.01.2015, 14:27 2
Мне кажется, никак. Если вы добавляете новое поле в таблицу, а в старой функции не указаны названия столбцов, в которые нужно инсертить данные...

Либо переписывать старые функции, либо добавить отдельную таблицу для новых полей.
1
Модератор
4215 / 3056 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
29.01.2015, 14:29 3
Цитата Сообщение от Никита-2012 Посмотреть сообщение
В общем, вопрос - как добавить своё поле в таблицу, чтобы чужие неизвестные мне методы гарантированно корректно обрабатывали эту таблицу?
Тут могут быть разные случаи.
Если вставка просто типа INSERT INTO ... VALUES, то такой скрипт должен по идее работать, если только ты на свое поле не назначешь NOT NULL.
Если где то используется SELECT *, то проблемы могут возникнуть в определенных случаях.
А вообще, если ты не знаешь, как используется таблица, то лучше ее не менять, а добавить новую таблицу, в которой будет поле со ссылкой на старую. Конечно это будет работать несколько дольше и SELECT-ы будут посложнее, зато "старые" скрипты будут работать гарантировано.
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 14:58 4
Я так понимаю ТС полный ноль в вопросе, и работает с БД только по средствам phpMyAdmin.
А это значит чтоб не сломать связи ему нужно как минимум указывать параметр "По умолчанию" для каждого нового столбца. Но это не решает всех проблем. И надо почитать про базы ему, так как он воспринимает БД как phpMyAdmin, а это разные веши.
0
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
29.01.2015, 15:01  [ТС] 5
Цитата Сообщение от Grossmeister Посмотреть сообщение
Тут могут быть разные случаи.
Если вставка просто типа INSERT INTO ... VALUES, то такой скрипт должен по идее работать, если только ты на свое поле не назначешь NOT NULL.
Если где то используется SELECT *, то проблемы могут возникнуть в определенных случаях.
А вообще, если ты не знаешь, как используется таблица, то лучше ее не менять, а добавить новую таблицу, в которой будет поле со ссылкой на старую. Конечно это будет работать несколько дольше и SELECT-ы будут посложнее, зато "старые" скрипты будут работать гарантировано.
А если добавить значение по умолчанию для моего 6-го поля, тогда чужой INSERT на пять полей будет правильно работать?

Добавлено через 1 минуту
Цитата Сообщение от BarbosLV Посмотреть сообщение
Я так понимаю ТС полный ноль в вопросе, и работает с БД только по средствам phpMyAdmin.
А это значит чтоб не сломать связи ему нужно как минимум указывать параметр "По умолчанию" для каждого нового столбца. Но это не решает всех проблем. И надо почитать про базы ему, так как он воспринимает БД как phpMyAdmin, а это разные веши.
Не совсем полный ноль, работал с БД также и методами PHP. Но вообще чайник, да.
Параметр, назначенный по умолчанию для поля решает проблему?
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 15:10 6
Цитата Сообщение от Никита-2012 Посмотреть сообщение
Параметр, назначенный по умолчанию для поля решает проблему?
Что бы решить проблему нужно описание проблемы. Всё зависит не от БД а от скрипта который с БД работает. Так что нет такого универсального способа который гарантирует на 100% что скрипт останется работоспособным после внесения изменений по структуре БД. Можно лишь придерживаться некоторых правил. Ставить новый столбец только в конец таблицы, не оставлять поля пустыми.
1
29.01.2015, 15:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2015, 15:10
Помогаю со студенческими работами здесь

Как к заданной таблице (dbf файл), у которой x полей, добавить новое поле?
как к заданной таблице (dbf файл), у которой x полей добавить новое поле? на форме datasourse,...

Не добавляется новое поле в таблицу
<? $mysqli = new mysqli('localhost', 'DPadmin', '1379258', 'dp'); $mysqli->query("ALTER TABLE...

Как добавить поле в существующую Аксессовскую таблицу
Как добавить поле в существующую Аксессовскую таблицу и установить ей логический тип?

Добавить новое поле в уже существующий CONSTRAINT UNIQUE
Есть такой SQL код (миграция) ALTER TABLE users ADD CONSTRAINT should_be_differ UNIQUE(username) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru