Linuchss: nachträglich PRIMARY KEY setzen

Beitrag lesen

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 zugriffscodeenthä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