Вставка SQL избегать имен столбцов - PullRequest
0 голосов
/ 26 июля 2011

При вставке SQL, как правило, мы указываем имена столбцов в SQL.Есть ли способ генерировать это динамически?в основном, если мы указываем имена столбцов, то завтра, если добавляется новый столбец, происходит изменение кода.Как я могу избежать этого?

Я думаю о следующем решении -

Как насчет получения имен столбцов с помощью select column_name, * из information_schema.columns где table_name = '' порядок по ordinal_position;и затем создать оператор INSERT со столбцами?Таким образом, мы не указываем имена столбцов в SQL ... Есть мысли?

Ответы [ 4 ]

1 голос
/ 26 июля 2011

Вы можете не указывать имена столбцов только при заполнении всех значений, но это также нарушит работу при добавлении нового столбца.

Если вы укажете имена, вы можете добавлять новые столбцы столько раз, сколько захотите. Им будет автоматически назначено значение по умолчанию, если вы оставите запрос как есть.

Если вы не хотите, чтобы они имели значение по умолчанию, вам все равно нужно отредактировать код. Конечно, вы можете динамически генерировать SQL и назначать значение по умолчанию, но это то, что ваша СУБД делает в любом случае! Я не вижу твоей проблемы.

0 голосов
/ 28 июля 2011

Я решил это, получив имена столбцов через выберите column_name, * из information_schema.columns, где table_name = '' порядок по порядковому положению; & затем создайте оператор INSERT со столбцами. Благодаря этому я избежал указания имен столбцов в запросе

0 голосов
/ 26 июля 2011

Предполагая, что вы говорите, что вы будете получать значения столбцов как входные данные откуда-то еще, вы можете сохранить имена столбцов в файле конфигурации, например, в файле свойств. Затем, если вы хотите предположить, что порядок всегда будет совпадать, просто сопоставьте входные значения с именами столбцов из файла, а добавление столбца просто означает получение нового значения, соответствующего новому столбцу.

0 голосов
/ 26 июля 2011

Вы можете использовать значение по умолчанию для нового столбца.

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