· 8 years ago · May 30, 2018, 10:06 AM
1while ($line = <>){
2 if (($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/)){
3
4 if ($line =~ /CREATE TABLE \"([a-z_]*)\"(.*)/){
5 $name = $1;
6 $sub = $2;
7 $sub =~ s/\"//g;
8 $line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n";
9 }elsif ($line =~ /CREATE TABLE '([a-z_]*)'(.*)/){
10 $name = $1;
11 $sub = $2;
12 $sub =~ s/\"//g;
13 $line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n";
14 }elsif ($line =~ /INSERT INTO \"([a-z_]*)\"(.*)/){
15 $line = "INSERT INTO $1$2\n";
16 $line =~ s/\"/\\\"/g;
17 $line =~ s/\"/\'/g;
18 }elsif ($line =~ m/CREATE INDEX/){
19 $line =~ s/\"//g;
20 $line =~ s/'//g;
21 }elsif ($line =~ m/CREATE UNIQUE INDEX/){
22 $line =~ s/"//g;
23 $line =~ s/'//g;
24 }else{
25 $line =~ s/\'\'/\\\'/g;
26 }
27
28 while ($line =~ m/,\\',/ ) {
29 $line =~ s/,\\',/,NULL,/g;
30 }
31 while ($line =~ m/,\\\",/) {
32 $line =~ s/,\\\",/,NULL,/
33 }
34 $line =~ s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g;
35 $line =~ s/THIS_IS_TRUE/1/g;
36 $line =~ s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g;
37 $line =~ s/THIS_IS_FALSE/0/g;
38 $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
39 print $line;
40 }
41}