-
Notifications
You must be signed in to change notification settings - Fork 0
/
UTF8_mysqlkonversio.php
executable file
·82 lines (60 loc) · 6.96 KB
/
UTF8_mysqlkonversio.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
require 'inc/connect.inc';
require 'inc/functions.inc';
$hname = php_uname('n');
$timeparts = explode(" ", microtime());
$starttime = $timeparts[1].mb_substr($timeparts[0], 1);
echo "\nSTART: $hname :$dbkanta\n";
$sql = "ALTER DATABASE $dbkanta CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;";
pupe_query($sql);
$query = "SHOW FULL TABLES FROM `$dbkanta` WHERE Table_Type = 'BASE TABLE'";
$tabresult = pupe_query($query);
while ($tables = mysqli_fetch_row($tabresult)) {
$query = "SELECT CCSA.character_set_name
FROM information_schema.`TABLES` T
JOIN information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA ON (CCSA.collation_name = T.table_collation)
WHERE T.table_schema = '$dbkanta'
AND T.table_name = '$tables[0]'";
$encres = pupe_query($query);
$encrow = mysqli_fetch_row($encres);
echo "$tables[0] --> $encrow[0]\n";
if ($encrow[0] != 'utf8') {
$query = "describe $tables[0]";
$fieldresult = pupe_query($query);
$sql = "";
while ($fields = mysqli_fetch_array($fieldresult)) {
if (preg_match("/(char\(|varchar\(|text)/", $fields[1])) {
$nullornot = "";
if ($fields[2] == "NO") {
$nullornot = " NOT NULL";
}
$sql .= "MODIFY `$fields[0]` $fields[1] CHARACTER SET utf8 COLLATE utf8mb4{$nullornot} DEFAULT '$fields[4]', ";
}
}
if (!empty($sql)) {
$sql = "ALTER TABLE $tables[0] ".mb_substr($sql, 0, -2);
pupe_query($sql);
echo "$sql\n";
}
$sql = "ALTER TABLE $tables[0] DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;";
pupe_query($sql);
echo "$sql\n";
}
}
// Dropataan ja luodaan triggerit uudestaan, niin niihinkin saadaan unicode-kollaatio
pupe_query("DROP trigger sarjanumeroseuranta_insert_trigger");
pupe_query("DROP trigger sarjanumeroseuranta_update_trigger");
pupe_query("DROP trigger tapahtuma_insert_trigger");
pupe_query("DROP trigger tapahtuma_update_trigger");
pupe_query("DROP trigger tilausrivi_insert_trigger");
pupe_query("DROP trigger tilausrivi_update_trigger");
pupe_query("DROP trigger tuotepaikat_insert_trigger");
pupe_query("DROP trigger tuotepaikat_update_trigger");
pupe_query("CREATE trigger sarjanumeroseuranta_insert_trigger before insert on sarjanumeroseuranta for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger sarjanumeroseuranta_update_trigger before update on sarjanumeroseuranta for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger tapahtuma_insert_trigger before insert on tapahtuma for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger tapahtuma_update_trigger before update on tapahtuma for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger tilausrivi_insert_trigger before insert on tilausrivi for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger tilausrivi_update_trigger before update on tilausrivi for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')))");
pupe_query("CREATE trigger tuotepaikat_insert_trigger before insert on tuotepaikat for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0'))), new.hyllypaikka = concat(new.hyllyalue, new.hyllynro, new.hyllyvali, new.hyllytaso)");
pupe_query("CREATE trigger tuotepaikat_update_trigger before update on tuotepaikat for each row set new.varasto = (select varastopaikat.tunnus from varastopaikat where varastopaikat.yhtio = new.yhtio and concat(rpad(upper(varastopaikat.alkuhyllyalue), 5, '0'), lpad(upper(varastopaikat.alkuhyllynro), 5, '0')) <= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0')) and concat(rpad(upper(varastopaikat.loppuhyllyalue), 5, '0'), lpad(upper(varastopaikat.loppuhyllynro), 5, '0')) >= concat(rpad(upper(new.hyllyalue), 5, '0'), lpad(upper(new.hyllynro), 5, '0'))), new.hyllypaikka = concat(new.hyllyalue, new.hyllynro, new.hyllyvali, new.hyllytaso)");