Учитывая различные реализации последовательности / автоинкремента, как я могу создать оператор вставки SQL, который будет работать с разными СУБД?

Я пытаюсь создать метод для класса, который будет автоматически вставлять запись в таблицу. Проблема в том, что мне нужно заставить код работать для mysql, mssql, postgresql, oracle и sqlite.

Единственные решения, которые я могу придумать, следующие:

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

  2. ] Создайте код, который переключит используемый метод на основе используемого драйвера rdbms, но это кажется небрежным, и я хотел бы использовать способ, совместимый со стандартами SQL, если это возможно.

Как я могу создать этот оператор INSERT для работы со всеми этими rdbms, если все они используют разные методы для автоматического увеличения поля первичного ключа?

5
задан Cœur 22 August 2017 в 13:53
поделиться