Ohne weitere Umschweife werde ich den Code direkt für Sie posten. Der spezifische Code lautet wie folgt: #!/usr/bin/perl # # basierend auf https://stackoverflow.com/a/87531/5742651 # Verwendung: sqlite3 .dump Datenbankname.sqlite3 | perl sqlite2mysql.pl | mysql -u root -p $import_Datenbankname # # folgende Zeilen ignorieren: # TRANSAKTION BEGINNEN # BEGEHEN #sqlite_sequenz # EINDEUTIGEN INDEX ERSTELLEN # PRAGMA foreign_keys=AUS # "tablename/field" => `Tabellenname/Feld` # Boolesche Werte 't' und 'f' => 1 und 0 # AUTOINCREMENT => AUTO_INCREMENT # varchar => varchar(255) # Tabelle erstellen ... => Tabelle löschen; Tabelle erstellen ... # Fügen Sie Insert-SQLs zu mehreren Inserts zusammen, um die Geschwindigkeit zu erhöhen # IN Tabelle einfügen VALUES('val1'); # IN Tabelle EINFÜGEN VALUES('val2'); => IN Tabelle EINFÜGEN VALUES('val1'), ('val2'), ('val3'); # IN Tabelle einfügen VALUES('val3'); mein $open=0; mein $line_cache = ''; # Zur Beschleunigung drucken "SET GLOBAL max_allowed_packet=209715200;\n"; #drucken "SET AUTOCOMMIT=0;\n"; während ($line = <>){ wenn (($line !~ /PRAGMA foreign_keys=OFF/) && ($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){ wenn ($line =~ /CREATE TABLE \"([a-z_0-9]*)\"(.*)/){ $name = "\`$1\`"; $sub = $2; $sub =~ s/varchar([^(])/varchar(255)$1/g; $line = "Tabelle löschen, wenn $name vorhanden ist;\nTabelle erstellen $name$sub\n"; } elsif ($line =~ /ANSICHT ERSTELLEN ([a-z_0-9]*)(.*)/){ $name = "\`$1\`"; $sub = $2; $line = "ANSICHT LÖSCHEN, WENN $name VORHANDEN IST;\nANSICHT ERSTELLEN $name$sub\n"; } elsif ($line =~ /INSERT INTO \"([a-z_]*)\" VALUES(.*);/){ wenn ($open == 0) { $öffnen = 1; $line_cache .= "INSERT INTO \`$1\` VALUES $2"; } anders { $line_cache .= ", $2"; } nächste; }anders{ $zeile =~ s/\'\'/\\\'/g; } wenn ($open == 1) { $öffnen = 0; $line = $line_cache.";\n".$line; $line_cache = ''; } $line =~ s/\"/`/g; $line =~ s/([^\\'])\'t\'(.)/$1DAS_IST_WAHR$2/g; $line =~ s/DAS_IST_WAHR/1/g; $line =~ s/([^\\'])\'f\'(.)/$1DIES_IST_FALSCH$2/g; $line =~ s/DIES_IST_FALSCH/0/g; $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g; drucke $line; } } #drucken "SET AUTOCOMMIT=1;\n"; Zusammenfassen Oben ist die vom Herausgeber vorgestellte Methode zum Migrieren von SQLite-Skripten zu MySQL. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So implementieren Sie Sveltes Defer Transition in Vue
>>: Schritte zum Erstellen Ihres eigenen YUM-Repositorys
Dieser Artikel zeichnet das Installations-Grafik-...
Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...
Vorwort Der von mir verwendete Computer ist ein M...
A. Installation des MySQL-Sicherungstools xtrabac...
Hallo zusammen, heute ist Double 12, habt ihr sch...
Verwenden Sie nginx, um die Trennung von PC-Site ...
Container-Lebenszyklus Der Lebenszyklus einer Con...
Während des Projekts habe ich begonnen, die js re...
Inhaltsverzeichnis 1. v-Text (v-Befehlsname = „Va...
Als ich kürzlich das Intranet-Portal änderte, sti...
Inhaltsverzeichnis Einführung Homebrew installier...
Tatsächlich haben wir in letzter Zeit viel über W...
Inhaltsverzeichnis 1. So erhalten Sie Elemente Ho...
Spezifische Methode: 1. Drücken Sie [ Win+R ], um...
MYSQL 5.6 Bereitstellung und Überwachung der Slav...