Каковы основные различия между диалектами mysql и oracle sql?

Я разработчик программного обеспечения. Я использовал mysql в течение многих лет, и теперь я собираюсь впервые столкнуться с оракулом в проекте.

Мне только что сказали, что я должен быть осторожен, потому что в некоторых случаях sql ведет себя совсем по-другому. Я понятия не имею, чего ожидать. Я в основном ищу очевидные вещи и типичные ошибки новичков.

Например мне сказали, что оракул не имеет автоинкремента.

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


person Yashima    schedule 02.09.2011    source источник


Ответы (2)


Например мне сказали, что оракул не имеет автоинкремента.

Oracle имеет последовательности; это просто другое обозначение. Идея значения столбца, которое автоматически увеличивается при INSERT, безусловно, присутствует.

Oracle заставит вас добавить первичные и внешние ключи в качестве ограничений отдельно от определения таблицы.

PostgreSQL наиболее близка к Oracle среди баз данных с открытым исходным кодом. У него тоже есть последовательности.

person duffymo    schedule 02.09.2011
comment
спасибо, так что я могу создать автоинкремент просто по-другому, это хорошо. к моему большому стыду, я должен признать, что до сих пор я видел только крошечную часть sybase, кроме mysql - person Yashima; 02.09.2011
comment
@duffymo, вы можете определить ограничения и ПК в определении таблицы, если хотите. См. определения встроенных ограничений здесь: download.oracle. com/docs/cd/B19306_01/server.102/b14200/ - person DCookie; 02.09.2011

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

http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html

person Ivar Bonsaksen    schedule 02.09.2011
comment
Если вы хотите протестировать поведение группировки, подобное Oracle, в старом добром MySQL, включите режим only_full_group_by, см.: dev.mysql.com/doc/refman/5.6/en/ - person Johan; 02.09.2011