19
if ($is_create == 1) {
23
if ( $str =~ /^CREATE TABLE/ ){
26
if ($is_create == 2) {
27
if ($str =~ /^FOREIGN KEY/){
28
($d1,$d2,$d3,$columns,$d4,$d5,$references_table,$d6) = split (/ /,$str,8);
29
#printf "Table $table_name $columns $references_table\n";
31
if ($table_name ne $old_name ){
32
printf "--\n-- Trigger for $table_name\n--\n\n";
35
foreach $i ( split(/,/ , $columns ) ){
36
print "CREATE INDEX I_$table_name";
37
print "_$i ON $table_name ( $i ) ;\n";
40
printf "\nCREATE TRIGGER T_P_$table_name";
41
printf "_$references_table BEFORE INSERT OR UPDATE ON $table_name FOR EACH ROW\n" ;
42
printf "EXECUTE PROCEDURE\n";
43
printf "check_primary_key(";
45
foreach $i ( split(/,/ , $columns ) ){
49
print "'$references_table',";
52
foreach $i ( split(/,/,$columns ) ){
61
printf "CREATE TRIGGER T_F_D_$references_table";
62
printf "_$table_name BEFORE DELETE ON $references_table FOR EACH ROW\n" ;
63
printf "EXECUTE PROCEDURE\n";
64
printf "check_foreign_key(1,'cascade',";
66
foreach $i ( split(/,/ , $columns ) ){
70
print "'$table_name',";
73
foreach $i ( split(/,/,$columns ) ){
82
printf "CREATE TRIGGER T_F_U_$references_table";
83
printf "_$table_name AFTER UPDATE ON $references_table FOR EACH ROW\n" ;
84
printf "EXECUTE PROCEDURE\n";
85
printf "check_foreign_key(1,'cascade',";
87
foreach $i ( split(/,/ , $columns ) ){
91
print "'$table_name',";
94
foreach $i ( split(/,/,$columns ) ){
103
if ($table_name ne $old_name ){
104
printf "-- ********************************\n\n\n";
106
$old_name=$table_name ;
113
if ($str =~ /^\)\;/ ) {