Какой синтаксис запроса SQL Server не поддерживается MySQL? - PullRequest
0 голосов
/ 13 января 2011

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

Я не использую хранимые процедуры, представления, триггеры, пользовательские функции и т. Д. Но я думаю, что даже тогда некоторые запросы, написанные для SQL Server, не будут поддерживаться MySQL.

Может ли кто-нибудь помочь: что я должен проверить (и изменить), чтобы все запросы также работали правильно и для MySQL?

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Запросы, которые я знаю без ознакомления с документацией, которая не будет работать:

  • (рекурсивные) общие табличные выражения
  • оконные функции
  • запросы с использованием стандартного SQLконкатенация строк ||
  • ОБНОВЛЕНИЯ с JOIN различны для двух систем
  • Арифметика дат: date_column + 1 ведет себя по-разному в SQL Server
  • Деление на ноль приведет к ошибке
  • SQL Server будет отклонять значения, которые не помещаются в столбец (вместо того, чтобы молча обрезать его, что MySQL делает при установке по умолчанию)

DDL, который не будет работать и может иметьвлияние на производительность и / или качество данных

  • столбцы даты и времени, где требуется точность до миллисекунд
  • таблицы с проверочными ограничениями
  • индексированные представления
  • триггеры для представлений
  • табличные функции (select * from my_function(42);)
  • отфильтрованные индексы ("частичный индекс")
  • индексы на основе функций
1 голос
/ 13 января 2011

Всегда есть возможность получить коммерческую поддержку от MySQL AB для этой проблемы. Я почти уверен, что они сделали достаточно MSSQL-> MySQL миграций, чтобы знать об этом много. Если ценник на миграцию не проблема.

В качестве альтернативы, вы можете попробовать запустить MySQL Migration Toolkit поверх данных и найти значимые сообщения об ошибках в материалах, которые он не может перенести. MySQL Migration Toolkit является частью MySQL GUI Tools.

...