my $tabelle = shift; # Neue Spalten hinzufügen $sql = "ALTER TABLE $tabelle ADD _email_first_part VARCHAR( 255 ) NOT NULL AFTER email, ADD _email_last_part VARCHAR( 255 ) NOT NULL AFTER _email_first_part"; $dbh->do($sql); if($DBI::err) { dbError("3084 dbUpdateEmailPartRows (SQL: $sql) (do): $DBI::errstr"); return 0; } # Index über diese Spalten legen $sql = "ALTER TABLE $tabelle ADD INDEX ( _email_first_part , _email_last_part )"; $dbh->do($sql); if($DBI::err) { dbError("3089 dbUpdateEmailPartRows (SQL: $sql) (do): $DBI::errstr"); return 0; } # Daten aus der Spalte 'email' erzeugen und in die neuen Spalten einfügen. $sql = "UPDATE $tabelle SET _email_first_part = SUBSTR( email, 1, POSITION( '\@' IN email) ), _email_last_part = SUBSTRING( email, POSITION( '\@' IN email) , LENGTH( email ) - POSITION( '\@' IN email ) +1 )"; $dbh->do($sql); if($DBI::err) { dbError("3094 dbUpdateEmailPartRows (SQL: $sql) (do): $DBI::errstr"); return 0; }