В настоящее время я оцениваю веб-фреймворки с уровнем ORM, и я наткнулся на интересную проблему. Я использовал таблицы с столбцом ID в приложении Java EE (EJB3/JPA) с различными базами данных. В SAPDB я мог бы определить последовательность и использовать аннотацию генератора последовательности jpa, чтобы справиться с ней, так же, как и раньше, в базе данных оракула. Когда я переключился на SQL Server 2005, мне внезапно пришлось заменить все это на аннотацию IDENTITY, потому что это похоже на то, как SQL Server обрабатывает генерацию идентификатора. Я был разочарован тем, что JPA не дал мне абстракции выше этого, и я думаю, что это не единственное ограничение, с которым я столкнусь, используя разные базы данных.Поддержка последовательностей/идентификаторов в webframeworks python
Теперь на мой вопрос: я прочитал, что в web2py, например, все таблицы должны быть изменены, чтобы использовать индекс auto_increment. Поддерживает ли он генераторы последовательности или столбцы идентичности? Как насчет других веб-фреймворков? Разресят ли они мне переносить мое приложение на несколько устаревших баз данных? То есть определения таблиц одинаковы, за исключением столбца идентификации и незначительных различий между определением типа данных для строк (я помню, что изменял создаваемые там утверждения, но я не могу вспомнить, что именно было необходимо)
Существует также разница в получении идентификатора - с генератором последовательности вы можете получить доступ к сгенерированному идентификатору до фиксации, с auto_increment в MySQL, afaik, вы не можете.