Przejdź do treści
Strona główna IntoSQL

Przenieś zrzut MariaDB do starszej lub nowszej wersji MariaDB

Upuść zrzut z mariadb-dump, mysqldump, phpMyAdmin lub Adminer, jako .sql lub .sql.gz, i pobierz skrypt, który ładuje się na MariaDB 10.11 i nowszych. UUID, INET4, INET6, JSON i sekwencje zostają bez zmian, VECTOR staje się tablicą JSON swoich liczb zmiennoprzecinkowych dla wersji przed 11.7, a każda zmiana jest wymieniona w raporcie.

Twój plik
sqlshop_2024_mariadb.sqlPlik przykładowy, 6,6 kB
Twoja baza danych

18 wierszy przekonwertowanych, bez poprawek, brak odrzuconych

Pokaż

Tabele w pliku shop_2024_mariadb.sqlZrzut MariaDB 11.8.9-MariaDB-ubu2404 · zapisany przez mariadb-dump · utf8mb4

  • customers8 wierszy
    8 kolumn
    idint(10) unsigned not null
    namevarchar(100) not null
    emailvarchar(150) not null
    countrychar(2) not null
    is_activetinyint(1) not null
    signed_update not null
    created_attimestamp not null
    last_ipinet6
  • orders10 wierszy
    12 kolumn
    idint(10) unsigned not null
    customer_idint(10) unsigned not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint(5) unsigned not null
    ordered_atdatetime not null
    shipped_atdatetime
    notevarchar(255)
    order_refuuid not null
    invoiceint(11) not null
    detailsjson
    updated_attimestamp not null
-- Written by IntoSQL from a MySQL dump. Load it with: mariadb --default-character-set=utf8mb4 <database> < <file>
SET NAMES utf8mb4;
SET TIME_ZONE = '+00:00';
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES';

CREATE SEQUENCE `invoice_numbers` START WITH 1000 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1;
SELECT SETVAL(`invoice_numbers`, 2000, 0);
CREATE TABLE `customers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `email` varchar(150) NOT NULL,
  `country` char(2) NOT NULL DEFAULT 'US',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `signed_up` date NOT NULL DEFAULT '0000-00-00',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `last_ip` inet6 DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci COMMENT='People who bought at least once';

CREATE TABLE `orders` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `customer_id` int(10) unsigned NOT NULL,
  `status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
  `total` decimal(10,2) NOT NULL,
  `items` smallint(5) unsigned NOT NULL DEFAULT 1,
  `ordered_at` datetime NOT NULL,
  `shipped_at` datetime DEFAULT NULL,
  `note` varchar(255) DEFAULT NULL,
  `order_ref` uuid NOT NULL,
  `invoice` int(11) NOT NULL DEFAULT (nextval(`invoice_numbers`)),
  `details` json DEFAULT NULL,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_customer` (`customer_id`),
  KEY `idx_status_date` (`status`,`ordered_at`),
  CONSTRAINT `fk_orders_customer` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`signed_up`,`created_at`,`last_ip`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'2023-01-15','2023-01-15 10:24:00','::ffff:203.0.113.7'),(2,'Zoë Müller','zoe@example.de','DE',1,'2023-02-03','2023-02-03 08:11:42','2001:db8::1'),(3,'José Peña','jose@example.es','ES',0,'2023-03-21','2023-03-21 19:05:17',NULL),(4,'李雷','lilei@example.cn','CN',1,'2023-05-09','2023-05-09 02:40:00','::ffff:198.51.100.23'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'0000-00-00','2023-06-30 14:00:00',NULL),(6,'Amélie Laurent','amelie@example.fr','FR',1,'2024-01-02','2024-01-02 09:30:00','2001:db8:85a3::8a2e:370:7334'),(7,'Ravi Patel','ravi@example.in','IN',0,'2024-02-29','2024-02-29 23:59:59','::ffff:192.0.2.200'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'2024-04-12','2024-04-12 12:12:12',NULL);
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`order_ref`,`invoice`,`details`,`updated_at`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'0b7a4c2e-3f1d-4e8a-9c55-1a2b3c4d5e6f',1000,'{\"gift\": false}','2024-03-02 16:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','1c8b5d3f-4a2e-4f9b-8d66-2b3c4d5e6f70',1001,'{\"gift\": true, \"wrap\": \"red\"}','2024-03-02 11:20:00'),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind','2d9c6e4a-5b3f-4a0c-9e77-3c4d5e6f7081',1002,NULL,'2024-03-03 10:00:00'),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','3e0d7f5b-6c4a-4b1d-8f88-4d5e6f708192',1003,'{\"fragile\": true}','2024-03-07 08:00:00'),(5,5,'pending',45.75,2,'2024-03-08 17:20:00',NULL,'Leave at the door; ring twice','4f1e806c-7d5b-4c2e-9a99-5e6f708192a3',1004,NULL,'2024-03-08 17:20:00'),(6,6,'shipped',310.40,5,'2024-03-10 13:00:00','2024-03-11 09:00:00','Fragile: \"glass\"','50f2917d-8e6c-4d3f-8baa-6f708192a3b4',1005,'{\"fragile\": true}','2024-03-11 09:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,'6103a28e-9f7d-4e40-9cbb-708192a3b4c5',1006,NULL,'2024-03-11 18:46:00'),(8,2,'',19.99,1,'2024-03-12 08:00:00',NULL,'Status lost in an old import','7214b39f-a08e-4f51-8dcc-8192a3b4c5d6',1007,NULL,'2024-03-12 08:00:00'),(9,3,'shipped',64.00,2,'2024-03-14 15:30:00','0000-00-00 00:00:00','Shipping date never recorded','8325c4a0-b19f-4062-9edd-92a3b4c5d6e7',1008,'{\"parcels\": [1, 2]}','2024-03-15 10:00:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf','9436d5b1-c2a0-4173-8fee-a3b4c5d6e7f8',1009,NULL,'2024-03-15 21:05:00');

SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;

Poprawki

Nic nie wymagało poprawek.

Plik jest konwertowany na tym komputerze i nigdy nie jest wysyłany.

Inne przykłady:

Co się zmienia między plikiem a skryptem

Każdy wiersz to reguła stosowana przez konwerter, z wpisem, który dodaje do raportu, gdy reguła coś zmienia w twoich danych.

  • utf8mb4_0900_* and utf8mb4_uca1400_* collations

    utf8mb4_unicode_520_ci dla utf8mb4_0900_* (utf8mb4_bin dla binarnych)

    MariaDB nie zna nowszych porównywań; to błąd, który zatrzymuje większość zrzutów MySQL 8 w innych bazach. unicode_520 najwierniej stosuje te same reguły Unicode.

    Wpis w raporcie: collation_replaced

  • zero, partial or impossible dates (0000-00-00, 2024-02-30)

    zachowane

    Skrypt ładuje się z ALLOW_INVALID_DATES i bez NO_ZERO_DATE, więc MariaDB zachowuje te same wartości, które miało źródło.

  • TIME

    TIME, łącznie z czasami trwania

    Ten sam typ, z tym samym zakresem.

  • TINYINT(1), BOOL

    TINYINT(1)

    Ten sam typ z tymi samymi wartościami.

  • UNSIGNED and ZEROFILL

    zachowane

    Te same typy.

  • ENUM and SET, the '' error value included

    zachowane

    Te same typy; skrypt ładuje się bez trybu ścisłego, więc wartość błędu ładuje się bez zmian.

  • JSON

    JSON (LONGTEXT sprawdzany przez MariaDB)

    MariaDB odczytuje ten sam tekst JSON.

  • NUL bytes in text

    zachowane

    Wartość jest kopiowana z tą samą sekwencją ucieczki, której użyło źródło.

  • AUTO_INCREMENT

    AUTO_INCREMENT z licznikiem tabeli

    Licznik idzie dalej od miejsca, w którym zostawiło go źródło, łącznie z licznikami grup w MyISAM.

  • MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump

    indeks na kolumnie i jeden licznik dla tabeli

    InnoDB liczy kolumnę tylko wtedy, gdy rozpoczyna ona indeks, i jednym licznikiem dla całej tabeli.

    Wpis w raporcie: myisam_group_autoincrement

  • ON UPDATE CURRENT_TIMESTAMP

    zachowane

    Ta sama klauzula, z ułamkami sekund kolumny.

  • generated columns

    VIRTUAL lub STORED jak w źródle

    Ta sama formuła, przetłumaczona element po elemencie.

  • generated columns with functions IntoSQL doesn't read

    zwykła kolumna

    Formuła, której IntoSQL nie potrafi odczytać, zostawia zwykłą kolumnę i wpis w raporcie.

    Wpis w raporcie: generated_not_translated

  • INVISIBLE columns

    kolumny INVISIBLE

    MySQL ma niewidoczne kolumny od 8.0.23, MariaDB od 10.3.

  • CHECK constraints

    zachowane

    Te same ograniczenia CHECK, przetłumaczone element po elemencie.

  • CHECK constraints with functions IntoSQL doesn't read

    nie jest tworzone

    CHECK, którego IntoSQL nie odczyta, jest pomijany i zgłaszany.

    Wpis w raporcie: check_skipped

  • CHECK ... NOT ENFORCED

    nie jest tworzone

    MySQL 5.7 i MariaDB nie mogą zachować ograniczenia CHECK bez jego stosowania, a wiersze mogą je łamać.

    Wpis w raporcie: check_not_enforced

  • expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY

    zachowane

    MySQL przyjmuje je od 8.0.13; skrypt ładuje się na 5.7, więc są pomijane i zgłaszane w raporcie. MariaDB je przyjmuje.

    Wpis w raporcie: default_not_translated

  • functional indexes, KEY ((expr))

    nie jest tworzony

    MySQL indeksuje wyrażenia od 8.0.13, a MariaDB wcale; kolumna generowana z indeksem robi to samo.

    Wpis w raporcie: index_skipped

  • keys and indexes on a prefix, c(20)

    zachowane

    Ten sam indeks.

  • FULLTEXT indexes

    zachowane

    Ten sam indeks; MATCH ... AGAINST działa jak wcześniej.

  • SPATIAL indexes

    zachowane

    Ten sam indeks.

  • foreign keys

    zachowane, ładowane z FOREIGN_KEY_CHECKS=0

    Te same klucze; wiersze ładują się tak jak ze zrzutu źródłowego.

  • GEOMETRY, POINT, POLYGON...

    zachowane, z SRID każdej wartości

    Kopiowane są własne bajty geometrii serwera, łącznie z SRID.

  • INET4, INET6, UUID (MariaDB)

    zachowane

    MySQL nie ma takich typów; tekst, który MariaDB dla nich zapisuje, jest zachowywany.

  • BINARY, VARBINARY, BLOB

    zachowane

    Bajty pozostają bajtami.

  • PARTITION BY

    jedna tabela

    Wiersze są te same; jeśli trzeba, podziel tabelę na partycje ponownie.

    Wpis w raporcie: partitions_dropped

  • WITH SYSTEM VERSIONING (MariaDB)

    WITH SYSTEM VERSIONING, od bieżących wierszy

    Zrzut zawiera tylko bieżące wiersze; MySQL nie ma wersjonowania systemowego.

  • Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)

    zachowane

    MySQL nie ma żadnego z tych silników. Każdy inny silnik jest zachowywany.

  • CREATE SEQUENCE (MariaDB)

    CREATE SEQUENCE z następną wartością

    MySQL nie ma sekwencji.

  • views, triggers, procedures, functions and events

    wymienione w raporcie

    Trafiają na listę do ręcznego odtworzenia; ich kod często wskazuje definera i funkcje serwera.

    Wpis w raporcie: not_converted_objects

  • NOT NULL columns with values that become NULL

    NOT NULL usunięte

    Kolumna, której wartości musiały stać się NULL, nie może zachować NOT NULL, bo ładowanie by się zatrzymało.

    Wpis w raporcie: not_null_relaxed

  • text that isn't valid in its character set

    błędne bajty jako znak zastępczy

    Skrypt jest w UTF-8; bajty, które nim nie są, zatrzymałyby ładowanie.

    Wpis w raporcie: invalid_utf8_replaced

  • text decoded twice (ñ)

    skopiowane bez zmian

    Zrzut zawiera dokładnie te znaki, więc są kopiowane; raport je wskazuje.

    Wpis w raporcie: mojibake_suspected

  • dumps without CREATE TABLE

    typy odczytane z wartości

    Zrzut zrobiony z --no-create-info zawiera tylko wiersze, więc typy pochodzą z wartości.

    Wpis w raporcie: no_schema

  • geometries in a dump without CREATE TABLE

    GEOMETRY

    Format geometrii MySQL jest rozpoznawany po wartościach.

  • SET NAMES utf8 from utf8mb4 tables

    przekonwertowane, z ostrzeżeniem

    mysqldump z MySQL 5.x domyślnie zapisuje 3-bajtowe utf8 i zastępuje każde emoji znakiem zapytania, zanim jakikolwiek konwerter zobaczy plik.

    Wpis w raporcie: dump_lost_four_byte_chars

  • dumps without SET NAMES whose text isn't UTF-8

    odczytane jako Latin-1 (Windows-1252)

    latin1 w MySQL to Windows-1252, zwykłe kodowanie takich zrzutów.

    Wpis w raporcie: charset_guessed

  • sjis, cp932, gbk, big5 dumps

    odczytane jako UTF-8, z ostrzeżeniem

    Te kodowania nie są jeszcze dekodowane.

    Wpis w raporcie: unsupported_charset

  • UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows

    obliczone

    Niektóre narzędzia do zrzutów zapisują wartości jako takie wywołania; są odczytywane jako wartości, które zwracają.

  • other expressions in rows

    NULL

    Konwerter, który nie uruchamia bazy danych, nie może ich obliczyć.

    Wpis w raporcie: expression_value

  • DEFAULT in VALUES

    wartość domyślna kolumny

    Dosłowna wartość domyślna jest kopiowana do wiersza.

    Wpis w raporcie: default_keyword_filled

  • DEFAULT in VALUES without a literal default

    NULL

    Nie ma wartości do skopiowania.

    Wpis w raporcie: default_keyword_null

  • REPLACE and INSERT IGNORE

    zwykłe wiersze

    Zrzut ma jeden wiersz na klucz, więc wiersze są te same.

    Wpis w raporcie: replace_as_insert

  • types IntoSQL doesn't know

    LONGBLOB

    Blob mieści bajty dowolnej wartości; zmień typ po załadowaniu.

    Wpis w raporcie: unknown_type

  • values that don't fit their column

    NULL

    Uszkodzony lub ręcznie pisany zrzut może zawierać wartości, których kolumna nie przyjmie; stają się NULL, aby reszta się załadowała.

    Wpis w raporcie: invalid_value_null

  • unreadable geometries

    NULL

    Bajtów, które nie są geometrią, nie da się zapisać jako geometrii.

    Wpis w raporcie: bad_geometry

  • TIMESTAMP

    zachowane, ładowane w strefie czasowej podanej w zrzucie

    Skrypt ustawia tę samą strefę czasową co zrzut, więc każdy moment jest ten sam.

  • VECTOR(n) (MariaDB 11.7+)

    json z liczbami float jako tablicą

    Skrypt ładuje się na MariaDB 10.11 i nowszych, które nie mają typu wektorowego; tablica JSON zachowuje każdą liczbę float, a VEC_FromText odczytuje ją z powrotem.

    Wpis w raporcie: type_replaced

W plikuW skrypcieWpis w raporcie
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_unicode_520_ci dla utf8mb4_0900_* (utf8mb4_bin dla binarnych)MariaDB nie zna nowszych porównywań; to błąd, który zatrzymuje większość zrzutów MySQL 8 w innych bazach. unicode_520 najwierniej stosuje te same reguły Unicode.collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)zachowaneSkrypt ładuje się z ALLOW_INVALID_DATES i bez NO_ZERO_DATE, więc MariaDB zachowuje te same wartości, które miało źródło.
TIMETIME, łącznie z czasami trwaniaTen sam typ, z tym samym zakresem.
TINYINT(1), BOOLTINYINT(1)Ten sam typ z tymi samymi wartościami.
UNSIGNED and ZEROFILLzachowaneTe same typy.
ENUM and SET, the '' error value includedzachowaneTe same typy; skrypt ładuje się bez trybu ścisłego, więc wartość błędu ładuje się bez zmian.
JSONJSON (LONGTEXT sprawdzany przez MariaDB)MariaDB odczytuje ten sam tekst JSON.
NUL bytes in textzachowaneWartość jest kopiowana z tą samą sekwencją ucieczki, której użyło źródło.
AUTO_INCREMENTAUTO_INCREMENT z licznikiem tabeliLicznik idzie dalej od miejsca, w którym zostawiło go źródło, łącznie z licznikami grup w MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dumpindeks na kolumnie i jeden licznik dla tabeliInnoDB liczy kolumnę tylko wtedy, gdy rozpoczyna ona indeks, i jednym licznikiem dla całej tabeli.myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMPzachowaneTa sama klauzula, z ułamkami sekund kolumny.
generated columnsVIRTUAL lub STORED jak w źródleTa sama formuła, przetłumaczona element po elemencie.
generated columns with functions IntoSQL doesn't readzwykła kolumnaFormuła, której IntoSQL nie potrafi odczytać, zostawia zwykłą kolumnę i wpis w raporcie.generated_not_translated
INVISIBLE columnskolumny INVISIBLEMySQL ma niewidoczne kolumny od 8.0.23, MariaDB od 10.3.
CHECK constraintszachowaneTe same ograniczenia CHECK, przetłumaczone element po elemencie.
CHECK constraints with functions IntoSQL doesn't readnie jest tworzoneCHECK, którego IntoSQL nie odczyta, jest pomijany i zgłaszany.check_skipped
CHECK ... NOT ENFORCEDnie jest tworzoneMySQL 5.7 i MariaDB nie mogą zachować ograniczenia CHECK bez jego stosowania, a wiersze mogą je łamać.check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRYzachowaneMySQL przyjmuje je od 8.0.13; skrypt ładuje się na 5.7, więc są pomijane i zgłaszane w raporcie. MariaDB je przyjmuje.default_not_translated
functional indexes, KEY ((expr))nie jest tworzonyMySQL indeksuje wyrażenia od 8.0.13, a MariaDB wcale; kolumna generowana z indeksem robi to samo.index_skipped
keys and indexes on a prefix, c(20)zachowaneTen sam indeks.
FULLTEXT indexeszachowaneTen sam indeks; MATCH ... AGAINST działa jak wcześniej.
SPATIAL indexeszachowaneTen sam indeks.
foreign keyszachowane, ładowane z FOREIGN_KEY_CHECKS=0Te same klucze; wiersze ładują się tak jak ze zrzutu źródłowego.
GEOMETRY, POINT, POLYGON...zachowane, z SRID każdej wartościKopiowane są własne bajty geometrii serwera, łącznie z SRID.
INET4, INET6, UUID (MariaDB)zachowaneMySQL nie ma takich typów; tekst, który MariaDB dla nich zapisuje, jest zachowywany.
BINARY, VARBINARY, BLOBzachowaneBajty pozostają bajtami.
PARTITION BYjedna tabelaWiersze są te same; jeśli trzeba, podziel tabelę na partycje ponownie.partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)WITH SYSTEM VERSIONING, od bieżących wierszyZrzut zawiera tylko bieżące wiersze; MySQL nie ma wersjonowania systemowego.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)zachowaneMySQL nie ma żadnego z tych silników. Każdy inny silnik jest zachowywany.
CREATE SEQUENCE (MariaDB)CREATE SEQUENCE z następną wartościąMySQL nie ma sekwencji.
views, triggers, procedures, functions and eventswymienione w raporcieTrafiają na listę do ręcznego odtworzenia; ich kod często wskazuje definera i funkcje serwera.not_converted_objects
NOT NULL columns with values that become NULLNOT NULL usunięteKolumna, której wartości musiały stać się NULL, nie może zachować NOT NULL, bo ładowanie by się zatrzymało.not_null_relaxed
text that isn't valid in its character setbłędne bajty jako znak zastępczySkrypt jest w UTF-8; bajty, które nim nie są, zatrzymałyby ładowanie.invalid_utf8_replaced
text decoded twice (ñ)skopiowane bez zmianZrzut zawiera dokładnie te znaki, więc są kopiowane; raport je wskazuje.mojibake_suspected
dumps without CREATE TABLEtypy odczytane z wartościZrzut zrobiony z --no-create-info zawiera tylko wiersze, więc typy pochodzą z wartości.no_schema
geometries in a dump without CREATE TABLEGEOMETRYFormat geometrii MySQL jest rozpoznawany po wartościach.
SET NAMES utf8 from utf8mb4 tablesprzekonwertowane, z ostrzeżeniemmysqldump z MySQL 5.x domyślnie zapisuje 3-bajtowe utf8 i zastępuje każde emoji znakiem zapytania, zanim jakikolwiek konwerter zobaczy plik.dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8odczytane jako Latin-1 (Windows-1252)latin1 w MySQL to Windows-1252, zwykłe kodowanie takich zrzutów.charset_guessed
sjis, cp932, gbk, big5 dumpsodczytane jako UTF-8, z ostrzeżeniemTe kodowania nie są jeszcze dekodowane.unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rowsobliczoneNiektóre narzędzia do zrzutów zapisują wartości jako takie wywołania; są odczytywane jako wartości, które zwracają.
other expressions in rowsNULLKonwerter, który nie uruchamia bazy danych, nie może ich obliczyć.expression_value
DEFAULT in VALUESwartość domyślna kolumnyDosłowna wartość domyślna jest kopiowana do wiersza.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLNie ma wartości do skopiowania.default_keyword_null
REPLACE and INSERT IGNOREzwykłe wierszeZrzut ma jeden wiersz na klucz, więc wiersze są te same.replace_as_insert
types IntoSQL doesn't knowLONGBLOBBlob mieści bajty dowolnej wartości; zmień typ po załadowaniu.unknown_type
values that don't fit their columnNULLUszkodzony lub ręcznie pisany zrzut może zawierać wartości, których kolumna nie przyjmie; stają się NULL, aby reszta się załadowała.invalid_value_null
unreadable geometriesNULLBajtów, które nie są geometrią, nie da się zapisać jako geometrii.bad_geometry
TIMESTAMPzachowane, ładowane w strefie czasowej podanej w zrzucieSkrypt ustawia tę samą strefę czasową co zrzut, więc każdy moment jest ten sam.
VECTOR(n) (MariaDB 11.7+)json z liczbami float jako tablicąSkrypt ładuje się na MariaDB 10.11 i nowszych, które nie mają typu wektorowego; tablica JSON zachowuje każdą liczbę float, a VEC_FromText odczytuje ją z powrotem.type_replaced

Załaduj skrypt do MariaDB

Skrypt tworzy tabele, kopiuje wiersze, a potem dodaje klucze, indeksy i klucze obce, więc ładuje się szybko i zatrzymuje przy pierwszym błędzie.

mariadb --default-character-set=utf8mb4 mydb < mariadb.mariadb.sql

Klucze obce są tworzone tak, jak deklaruje je zrzut, z FOREIGN_KEY_CHECKS=0 podczas ładowania wierszy, tak jak robi to mysqldump.

Przy dużym zrzucie uruchom klienta na tej samej maszynie co serwer i zwiększ max_allowed_packet, jeśli pojedynczy wiersz jest bardzo duży.

IntoSQL Pro ładuje plik prosto do MariaDB z aplikacji na komputer lub wiersza poleceń, bez pisania skryptu.

Jak zrobić zrzut MariaDB dla najlepszego wyniku

Konwerter odczytuje to, co zawiera zrzut. Te opcje zachowują w nim więcej twoich danych:

  • --default-character-set=utf8mb4 zachowuje emoji i inne 4-bajtowe znaki, które zrzut utf8mb3 traci, zanim zobaczy go konwerter.
  • --hex-blob zapisuje kolumny binarne i wartości VECTOR szesnastkowo, co przetrwa kopiowanie między systemami.
  • --routines --triggers --events dodają te obiekty do zrzutu, aby raport mógł je wymienić.

Co nie jest konwertowane

Widoki, wyzwalacze, procedury, funkcje i inne obiekty napisane we własnym języku MariaDB są wymienione w raporcie z nazwy i nigdy nie są pomijane po cichu, więc możesz sprawdzić każdy z nich w wersji MariaDB, do której ładujesz, zanim go odtworzysz.

Pytania o przenoszenie MariaDB między wersjami

Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu

Czy mój zrzut jest wysyłany?

Nie. Konwerter działa w przeglądarce i odczytuje zrzut z dysku po kawałku, więc nigdy nie opuszcza on twojego komputera. Aplikacja na komputer i wiersz poleceń też konwertują na twoim komputerze.

Jak duży może być zrzut?

Konwerter nigdy nie trzyma całego zrzutu w pamięci: czyta plik dwa razy, fragmentami, i zapisuje skrypt na bieżąco. Zrzuty wielogigabajtowe konwertują się w przeglądarce, w aplikacji na komputer i w wierszu poleceń.

Z jakich wersji MariaDB może pochodzić zrzut?

Zrzuty z mariadb-dump i mysqldump z MariaDB od 10.3 do 12, z jednym INSERT na tabelę lub jednym na wiersz. Każdy testowy zrzut pochodzi z MariaDB 10.11, 11.4 i 11.8 i jest porównywany ze źródłem komórka po komórce.

Czy kolumny UUID, INET6, JSON i VECTOR są zachowywane?

UUID, INET4, INET6 i JSON zostają bez zmian. VECTOR staje się tablicą JSON jego liczb float, bo MariaDB przed 11.7 nie ma typu wektorowego; VEC_FromText odczytuje ją z powrotem.

Czy wartości AUTO_INCREMENT i sekwencje są zachowywane?

Tak. AUTO_INCREMENT i sekwencje zostają bez zmian, a wartości domyślne, które pobierają z sekwencji, nadal z niej pobierają.

A procedury składowane i wyzwalacze?

Raport wymienia je z nazwy, ale nie są konwertowane, więc możesz sprawdzić każdy z nich w MariaDB, do której ładujesz, zanim go odtworzysz.

Na jakich wersjach MariaDB ładuje się skrypt?

MariaDB 10.11 i nowsze, niezależnie od wersji, która zapisała zrzut. Każdy testowy zrzut ładuje się na 10.11 i 11.4.