Вставить данные вручную безопасным способом? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть триггер, который должен заполнить таблицу сотнями строк, мне нужно вручную вводить каждую вставку (это своего рода таблица предварительной настройки). Эта таблица имеет Int FK для таблицы Enum. Таблица Enum использует int в качестве PK и varchar (что УНИКАЛЬНО).

При вводе операторов вставки мне нужно быть очень осторожным, чтобы целое число FK было правильным. Я бы предпочел вставить данные от varchar перечисления. Теперь я делаю что-то вроде этого:

INSERT INTO MyTable(ColorId)
VALUES(1)

И я хотел бы сделать что-то вроде этого:

INSERT INTO MyTable(ColorStr)
VALUES('Red')

Причина, по которой Enum имеет int PK, связана с проблемами производительности (быстрые запросы), но я не знаю, если это хорошая идея сейчас. Как вы думаете?

Есть ли безопасный способ сделать это? Можно ли вставить данные в табличное представление?

1 Ответ

0 голосов
/ 30 апреля 2020

Конечно. Не вставляйте.

Без шуток.

Во-первых, вам не нужно использовать один оператор вставки PER LINE - посмотрите на синтаксис, вы можете иметь один оператор вставки, выполняющий много строк.

Во-вторых, ничто в мире не говорит, что вы не можете выполнять обработку (например, выборку и объединение) для вставленных данных.

Обычно я использую такое определение таблицы (с оператором слияния) для всех мои данные о поиске в библиотеке c (например, списки стран). Полное автоматическое c обслуживание при каждом изменении. Со вставками и обновлениями происходит по запросу.

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