Heim > Datenbank > MySQL-Tutorial > Wie kann ich meine SQLite3-Datenbank einfach auf MySQL migrieren?

Wie kann ich meine SQLite3-Datenbank einfach auf MySQL migrieren?

Barbara Streisand
Freigeben: 2024-12-08 22:45:12
Original
938 Leute haben es durchsucht

How Can I Easily Migrate My SQLite3 Database to MySQL?

Schnelle und einfache Migration von SQLite3 zu MySQL

Wenn Sie einen unkomplizierten Ansatz für die Migration Ihrer SQLite3-Datenbank nach MySQL suchen, sind Sie hier nicht richtig allein. Der Versuch, Daten manuell zu konvertieren, führt häufig zu Unsicherheit über die Richtigkeit der importierten Daten. Obwohl es für diese spezielle Konvertierung keine etablierte Bibliothek gibt, können wir Ihnen anhand der Unterschiede zwischen den beiden Dateiformaten Hinweise geben.

Syntaxunterschiede

  • SQLite3 verwendet „BEGIN TRANSACTION“ und „COMMIT“, die in MySQL weggelassen werden.
  • MySQL erfordert stattdessen doppelte Anführungszeichen einfache Anführungszeichen in Schemadefinitionen.
  • MySQL verwendet einfache Anführungszeichen für Zeichenfolgen in „INSERT INTO“-Klauseln, im Gegensatz zu den doppelten Anführungszeichen von SQLite3.
  • Das Escapezeichen von Zeichenfolgen unterscheidet sich zwischen den beiden Systemen.
  • MySQL verwendet 1 und 0 für boolesche Werte, während SQLite3 „t“ und verwendet 'f.'
  • Die Funktion zur automatischen Inkrementierung heißt in SQLite3 „AUTOINCREMENT“ und in MySQL „AUTO_INCREMENT“.

Perl-Skript für die Datenmigration

Wir bieten ein modifiziertes Perl-Skript an, das diese Unterschiede berücksichtigt und erfolgreich an bestimmten Datensätzen getestet wurde. Möglicherweise müssen Sie es jedoch anpassen, um es an Ihre spezifischen Daten anzupassen:

#! /usr/bin/perl

while ($line = <>){
    if (($line !~  /BEGIN TRANSACTION/) &amp;&amp; ($line !~ /COMMIT/) &amp;&amp; ($line !~ /sqlite_sequence/) &amp;&amp; ($line !~ /CREATE UNIQUE INDEX/)){
        
        if ($line =~ /CREATE TABLE \&quot;([a-z_]*)\&quot;(.*)/i){
            $name = ;
            $sub = ;
            $sub =~ s/\&quot;//g;
            $line = &quot;DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n&quot;;
        }
        elsif ($line =~ /INSERT INTO \&quot;([a-z_]*)\&quot;(.*)/i){
            $line = &quot;INSERT INTO \n&quot;;
            $line =~ s/\&quot;/\\&quot;/g;
            $line =~ s/\&quot;/\'/g;
        }else{
            $line =~ s/\'\'/\\'/g;
        }
        $line =~ s/([^\'])\'t\'(.)/THIS_IS_TRUE/g;
        $line =~ s/THIS_IS_TRUE/1/g;
        $line =~ s/([^\'])\'f\'(.)/THIS_IS_FALSE/g;
        $line =~ s/THIS_IS_FALSE/0/g;
        $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
        print $line;
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich meine SQLite3-Datenbank einfach auf MySQL migrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage