Портирование кода из mSQL в MySQL


Перенос прикладных программ mSQL в MySQL относительно прост.

Сначала выполните скрипт msql2mysql (поставляется вместе с MySQL) над вашим источником. Он оттранслирует имена функций mSQL в имена функций MySQL. Но он не будет корректировать типы параметров или изменять число параметров в функциях MySQL, которые нуждаются в дополнительных параметрах.

Замечания:

MySQL поставляется с портированными версиями тестовых программ mSQL insert_test.c и select_test.c. Хорошая идея сравнить их с их mSQL эквивалентами. Это должно дать Вам хорошее начало для понимания, что Вы будете должны сделать для портирования mSQL программы в MySQL. Это также даст Вам некоторые мысли о том, что Вы должны делать, чтобы написать свою MySQL программу.

Чем отличается реализация протокола клиент/сервер в MySQL от своего аналога в mSQL?

Имеются значительные различия. Среди них:

Отличия между msql 2.0b7 и MySQL


- CREATE TABLE:

  MySQL: имеет опции для поля:

         UNSIGNED, ZEROFILL, имеет значение по умолчанию для не пустых полей.

  mSQL:  опций не имеет.



- Создание индексов:

  MySQL:  Все индексы должны быть заданы в CREATE TABLE.

  mSQL:   Индексы должны быть созданы отдельным оператором CREATE INDEX.

          (msql использует новый файл ключа для каждого индекса?) Индексы

          могут быть удалены оператором DROP INDEX



- Для получения уникального идентификатора при вставке:

  MySQL: Используйте 'auto_increment' как определение типа столбца.

         Используемый индекс может быть получен после обновления функцией API

         mysql_insert_id().

  mSQL:  Создает структуру SEQUENCE для таблицы и использует функцию __seq

         для получения уникального индекса.



- Групповые функции:

  MySQL: count(), avg(), min(), max() и sum(). min() и max() могут принимать

         строковые аргументы. count(*) оптимизирована для возвращения

         значения в случае одного столбца.

  mSQL:  Нет.



- Независимый от регистра поиск:

  MySQL: LIKE обязательно не зависит от регистра. Если возможно, MySQL

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

         с подстановочных знаков.

  mSQL:  Использует CLIKE.



- Поиск с регулярными выражениями.

  MySQL: Использует REGEXP or RLIKE

  mSQL:  Использует RLIKE.



- Какие различия в операторе WHERE:

  MySQL имеет скобки, Скоро он будет иметь полную функциональную поддержку

        оператора WHERE (это планируется для версии 3.21.X).



- Имена столбцов:

  MySQL: Если имя столбца уникально, Вы не должны использовать полное имя.

  mSQL:  При использовании более чем одной таблицы в SELECT, Вы должны

         использовать полное имя таблицы.



- Псевдонимы:

  MySQL: Псевдонимы для таблиц и столбцов.

  mSQL:  Псевдонимы для таблиц.



- Insert/update с вычислениями:

  MySQL: Полная поддержка вычислений. В insert можно использовать

         значения предшествующих полей.

  mSQL:  Только константы в insert и update.



- Какие формулы могут использоваться в инструкции select:

  MySQL: См. руководство.

  mSQL:  Никакие.



- HAVING:

  MySQL: Поддерживается, но может использовать вычисление только на выбранных

         полях. Для select на расчетном значении, нужно использовать

         псевдоним столбца.

         ПРИМЕР: SELECT COUNT(*) AS id_count, id FROM groups GROUP BY id

                        HAVING id_count > 10

  mSQL:  Не поддерживается вовсе.



- Импорт и экспорт данных:

  MySQL: MySQL имеет соответствующие функциональные возможности, включая

         сервис для импорта данных посредством оператора LOAD DATA INFILE,

         что весьма ускоряет загрузку данных.

  mSQL:  Внешние программы.

В заключение хочется попросить Вас, если Вам понравилась эта страничка или пригодилась изложенная здесь информация, послать благодарность автору. Это поможет мне вести статистику того, скольким людям пригодилось хоть что-то из моих трудов.

Локальное оглавление.

На главную страничку.


Banner.Novgorod.Ru