«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Руководство по миграции с MySQL на GBase

Руководство по миграции с MySQL на GBase

Опубликовано 17 августа 2024 г.
Просматривать:159

MySQL to GBase Migration Guide

В этой статье представлено краткое руководство по миграции прикладных систем на основе баз данных MySQL в базы данных GBase (GBase 8c). Для получения подробной информации о конкретных аспектах обеих баз данных читатели могут обратиться к официальной документации MySQL (https://dev.mysql.com/doc/) и руководству пользователя GBase 8c. Из-за обширного контента, связанного с базовым сопоставлением типов данных MySQL и другими аспектами процесса миграции, это не будет подробно рассмотрено в этой статье. Если интересно, оставьте комментарий, и мы обсудим это в следующий раз.

1. Создание базы данных

И в MySQL, и в GBase 8c оператор CREATE DATABASE используется для создания базы данных. Конкретные синтаксические различия заключаются в следующем:

Операция Оператор MySQL SQL Оператор SQL GBase 8c
СОЗДАТЬ БАЗУ ДАННЫХ Пример CREATE DATABASE НАБОР СИМВОЛОВ utf8mb4 COLLATE utf8mb4_unicode_ci; Пример CREATE DATABASE OWNER gbase КОДИРОВАНИЕ 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

Соображения по переносу операторов SQL для создания баз данных:

(1) И в MySQL, и в GBase 8c вы можете указать набор символов и правила сортировки при создании базы данных.

В отличие от MySQL, в GBase 8c ключевое слово ENCODING используется для указания набора символов, а ключевые слова LC_COLLATE и LC_CTYPE используются для указания правил сортировки:

  • LC_COLLATE: этот параметр влияет на порядок сортировки строк (например, при использовании ORDER BY, а также на порядок индексов в текстовых столбцах).

  • LC_CTYPE: этот параметр влияет на классификацию символов, например прописные, строчные буквы и цифры.

(2) При создании базы данных в GBase 8c вы также можете указать уникальные дополнительные атрибуты. Общие атрибуты включают:

  • OWNER: этот параметр указывает владельца базы данных. Если не указано, владельцем по умолчанию является текущий пользователь.

  • CONNECTION LIMIT: этот параметр определяет количество одновременных подключений, которые может принять база данных. На системных администраторов это ограничение не распространяется.

(3) Структура базы данных

В MySQL база данных и схема являются синонимами, и базы данных могут ссылаться друг на друга. В GBase 8c база данных и схема являются отдельными объектами. Одна база данных может содержать несколько схем, и базы данных не могут ссылаться друг на друга, но схемы в одной базе данных могут.

2. Использование базы данных

Сравнение различных операторов SQL для работы с базой данных:

Операция Оператор MySQL SQL Оператор SQL GBase 8c Инструмент GBase 8c gsql
Просмотреть базы данных ПОКАЗАТЬ БАЗЫ ДАННЫХ; или ПОКАЗАТЬ пример БАЗЫ ДАННЫХ; ВЫБРАТЬ * ИЗ pg_database; \л или \л
Переключить базу данных ИСПОЛЬЗОВАТЬ пример; Переподключитесь для переключения, эта функция не использует SQL для переключения \c пример
Удалить базу данных Пример УДАЛЕНИЯ БАЗЫ ДАННЫХ; Пример УДАЛЕНИЯ БАЗЫ ДАННЫХ; Никто

3. Создание таблиц

И MySQL, и GBase 8c поддерживают создание таблиц с помощью оператора CREATE TABLE. Конкретные синтаксические различия заключаются в следующем:

Операция Оператор MySQL SQL Оператор SQL GBase 8c
Создание таблиц с помощью CREATE TABLE CREATE TABLE `my_table` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` int NOT NULL COMMENT 'User id',
`name` varchar(50) DEFAULT NULL COMMENT 'Name',
`address` varchar(50) DEFAULT NULL COMMENT 'Address',
`password` varchar(20) DEFAULT 'passwd' COMMENT 'Password',
PRIMARY KEY (`id `)
) ENGINE=InnoDB CHARSET ПО УМОЛЧАНИЮ=utf8;
CREATE TABLE "my_table" (
"id" SERIAL NOT NULL,
"user_id" int NOT NULL,
"name" varchar(50),
"address" varchar(50) ,
"passwd" varchar(20) DEFAULT 'password',
CONSTRAINT "my_table_pkey" ПЕРВИЧНЫЙ КЛЮЧ ("id")
);

КОММЕНТАРИЙ НА КОЛОННЕ "my_table"."id " IS 'id';
КОММЕНТАРИЙ К СТОЛБЦУ "my_table"."user_id" IS 'ID пользователя';
КОММЕНТАРИЙ К КОЛОНЦУ "my_table"."name" IS 'Name';
КОММЕНТАРИЙ К КОЛОННЕ " my_table"."address" IS "Адрес";
КОММЕНТАРИЙ К КОЛОННЕ "my_table"."passwd" IS "Пароль";
Создание таблиц с помощью CREATE TABLE ... LIKE создать таблицу `my_table_like`, например `my_table`; создать таблицу my_table_like (например, my_table);
Создание таблиц с помощью CREATE TABLE ... AS создать таблицу `my_table_as` как select * from `my_table`; создать таблицу my_table_as как select * from my_table ;

При переносе операторов SQL для создания таблиц требуются следующие изменения синтаксиса:

(1) Правила именования и учет регистра
В MySQL имена баз данных, таблиц и полей заключаются в обратные кавычки (``) для маркировки. Это не разрешено в GBase 8c; вместо этого GBase 8c использует либо двойные кавычки, либо вообще не использует знаки.

В GBase 8c, если имена таблиц и полей не заключены в двойные кавычки, они автоматически преобразуются в нижний регистр при создании таблицы. Если вам нужно указать имена в верхнем регистре, вы должны заключить их в двойные кавычки.

(2) Изменения, связанные с механизмом хранения данных

  • При переходе на GBase 8c необходимо удалить из операторов MySQL предложения, связанные с механизмом хранения, такие как ENGINE и TYPE.

  • GBase 8c не поддерживает установку наборов символов на уровне таблицы, поэтому предложения CHARSET в операторах MySQL следует удалить при переходе на GBase 8c.

(3) СОЗДАТЬ ТАБЛИЦУ КАК\AS
GBase 8c также поддерживает синтаксис CREATE TABLE LIKE\AS, но использование предложения LIKE отличается от MySQL. В GBase 8c предложение LIKE должно быть заключено в «()», и оно не копирует аннотации COMMENT автоматически из исходных столбцов таблицы.

4. Заявления, связанные с представлением

И MySQL, и GBase 8c поддерживают представления, а основной метод создания аналогичен. Однако важно отметить, что в GBase 8c по правилу по умолчанию прямое изменение данных в представлении не поддерживается.

Операция Оператор MySQL SQL Оператор SQL GBase 8c
Создание представления СОЗДАТЬ ПРОСМОТР v_my_table КАК ВЫБРАТЬ * FROM my_table; СОЗДАТЬ ПРОСМОТР v_my_table КАК ВЫБРАТЬ * FROM my_table;
Изменение данных с помощью представления INSERT INTO v_my_table(user_id, имя, адрес) VALUES(2222, 'bbb', 'xxxx'); Поддерживается, но требует изменения ПРАВИЛА по умолчанию
Удаление просмотра УДАЛИТЬ ПРОСМОТР v_my_table; УДАЛИТЬ ПРОСМОТР v_my_table;

5. Заявления, связанные с индексами

И MySQL, и GBase 8c поддерживают функцию индексирования, но есть небольшие различия в операциях создания и удаления. Основные синтаксические различия заключаются в следующем:

Операция Оператор MySQL SQL Оператор SQL GBase 8c
Создание индекса СОЗДАТЬ ИНДЕКС i_user_id ИСПОЛЬЗОВАНИЕ BTREE НА my_table (user_id);
или
СОЗДАТЬ ИНДЕКС i_user_id НА my_table (user_id) С ИСПОЛЬЗОВАНИЕМ BTREE;
СОЗДАТЬ ИНДЕКС i_user_id НА my_table, ИСПОЛЬЗУЯ BTREE (user_id);
Индекс падения УДАЛИТЬ ИНДЕКС i_user_id НА my_table; УДАЛИТЬ ИНДЕКС i_user_id;

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

(1) Позиция USING index_type
В MySQL предложение USING index_type может появляться либо до, либо после предложения table_name(col_name), как показано:

... ИСПОЛЬЗОВАНИЕ индексного_типа имя_таблицы(имя_столбца) ...

ИЛИ

... имя_таблицы(имя_столбца) ИСПОЛЬЗОВАНИЕ тип_индекса ...

Однако в GBase 8c предложение USING index_type должно быть помещено в середину предложения table_name(col_name):

... имя_таблицы ИСПОЛЬЗУЕТ тип_индекса (имя_столбца) ...

(2) ПЕРЕДАЧА ИНДЕКСА НА таблице
В GBase 8c при удалении объекта индекса вам не нужно указывать предложение таблицы ON. Этот пункт следует удалить во время миграции.

(3) Другие объекты недвижимости
GBase 8c не поддерживает свойства FULLTEXT и SPATIAL при создании объектов индекса. Эти свойства необходимо удалить во время миграции.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/congcong/mysql-to-gbase-8c-migration-guide-31ch?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3