Hallo zusammen.
Ich habe eine TL Extension geschrieben die soweit auch schon funktioniert.
Jetzt habe ich ein Feld dessen Inhalt nicht mehrfach in vorkommen darf.
Ich habe im Datenbankmodell daher einach einen UNIQUE index auf das Feld gesetzt. Im Backend wird damit zwar erfolreich verhindert das ich einen doppelten Eintrag anlegen aber es erscheint unter dem Feld immer die SQL Fehlermeldung:
Query error: Duplicate entry 'de' for key 2 (UPDATE tl_domain_whois SET tld='de' WHERE id='9')
Gibt es dafür eine bessere Methode ? Ich würde mir wünschen das dort einfach eine Fehlermeldung auftaucht wie z.B. "Fehler: Es existiert bereits ein Datensatz mit dieser Domainendung"
Das Datenbankmodell sieht so aus:
CREATE TABLE `tl_domain_whois` (
`id` int(10) unsigned NOT NULL auto_increment,
`tstamp` int(10) unsigned NOT NULL default '0'
`tld` varchar(64) NOT NULL,
`server` varchar(255) NOT NULL,
`string` varchar(255) NOT NULL,
`favourite` char(1) NOT NULL default 'N'
PRIMARY KEY (`id`),
UNIQUE `tld` (`tld`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Damit habe ich übrigends auch noch das Problem das wenn ich in der Erweiterungsverwaltung auf "Datenbank prüfen/aktualisieren klicke" er immer wieder die folgenden SQL Statements ausführen will obwohl ich an der Tabelle nichts geändert habe:
ALTER TABLE `tl_domain_whois` CHANGE `tld` `tld` varchar(64) NOT NULL;
ALTER TABLE `tl_domain_whois` CHANGE `server` `server` varchar(255) NOT NULL;
ALTER TABLE `tl_domain_whois` CHANGE `string` `string` varchar(255) NOT NULL;
ALTER TABLE `tl_domain_whois` DROP INDEX `tld`, ADD UNIQUE `tld` (`tld`);
Ist das normal ? Oder habe ich irgendwo was vergessen ? Ein löschen und neu anlegen der Tabelle hat leider auch nichts gebracht.
Gruß
Holger
Lesezeichen