sql >> データベース >  >> Database Tools >> MySQL Workbench

Errno 121、書き込みまたは更新時にキーが重複していますか?

    これは、列と同じ識別子を持つ少なくとも1つの制約に名前を付けたことが原因である可能性があります:

    /* You already have a column named `restaurant` in this table, 
       but are naming the FK CONSTRAINT `restaurant` also... */
    CONSTRAINT `restaurant`
        FOREIGN KEY (`restaurant` )
        REFERENCES `mydb`.`restaurants` (`id` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    

    fk_restaurantのような制約に別の識別子を使用する必要があります のように:

    CONSTRAINT `fk_restaurant`
        FOREIGN KEY (`restaurant` )
        REFERENCES `mydb`.`restaurants` (`id` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    

    そして、foodでも同じことが言えます テーブル:

      /* Name it fk_food */
      CONSTRAINT `fk_food`
        FOREIGN KEY (`food` )
        REFERENCES `mydb`.`food` (`id` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      /* Name it fk_restaurant */
      CONSTRAINT `fk_restaurant`
        FOREIGN KEY (`restaurant` )
        REFERENCES `mydb`.`restaurants` (`id` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    

    私が見るのはこれらの3つだけですが、他にも見逃した可能性があります。



    1. SQL ServerManagementStudioを再度開いた後にタブを復元する

    2. phpMyAdminよりも優れたWebベースのMySQLインターフェイス

    3. Postgresqlを使用してクエリをテーブルとして保存する

    4. PHP拡張機能:phpmyadminのmysql