Uniq-Spalte
Der beanstandete doppelte Wert ist nicht doppelt. Mit
select * from ... where id = 64
gibt es genau einen Treffer. Gilt für alle id.
Das Feld zugriffscode
enthält auch unique-Werte und ich kann es als INDEX-Key anlegen, aber nicht ändern auf UNIQUE.
Jetzt im eigenen Programm (nicht phpMyAdmin):
$q = "
SELECT *
FROM `shanty`.`fsd_adressen`
WHERE zugriffscode = '570 111 400'
";
$res_setid = mysql_query( $q, $conn_id ); zeigSqlFehler( $q, $conn_id );
echo "<pre>zugriffscode '570 111 400' ist " . @mysql_num_rows($res_setid) . " mal vorhanden.</pre>";
if ( @mysql_num_rows($res_setid) == 1 ) {
$q = "
ALTER TABLE `shanty`.`fsd_adressen` DROP INDEX `zugriffscode`, ADD UNIQUE `zugriffscode` (`zugriffscode`) USING BTREE";
$res_setid = mysql_query( $q, $conn_id ); zeigSqlFehler( $q, $conn_id );
}
Antwort:
zugriffscode '570 111 400' ist 1 mal vorhanden.
ALTER TABLE `shanty`.`fsd_adressen` DROP INDEX `zugriffscode`, ADD UNIQUE `zugriffscode` (`zugriffscode`) USING BTREE
1062: Duplicate entry '570 111 400' for key 'zugriffscode'
Kann da irgendwas mit der Tabelle nicht stimmen?
Linuchs