sql >> Databáze >  >> RDS >> Mysql

MySQL 1062 – Duplicitní záznam „0“ pro klíč „PRIMARY“

Primární klíč musíte zadat jako automatický přírůstek

CREATE TABLE `momento_distribution`
  (
     `momento_id`       INT(11) NOT NULL AUTO_INCREMENT,
     `momento_idmember` INT(11) NOT NULL,
     `created_at`       DATETIME DEFAULT NULL,
     `updated_at`       DATETIME DEFAULT NULL,
     `unread`           TINYINT(1) DEFAULT '1',
     `accepted`         VARCHAR(10) NOT NULL DEFAULT 'pending',
     `ext_member`       VARCHAR(255) DEFAULT NULL,
     PRIMARY KEY (`momento_id`, `momento_idmember`),
     KEY `momento_distribution_FI_2` (`momento_idmember`),
     KEY `accepted` (`accepted`, `ext_member`)
  )
ENGINE=InnoDB
DEFAULT CHARSET=latin1$$

Co se týče komentáře níže, co takhle:

ALTER TABLE `momento_distribution`
  CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`id`);

PRIMÁRNÍ KLÍČ je jedinečný index, takže pokud obsahuje duplikáty, nemůžete sloupec přiřadit jako jedinečný index, takže možná budete muset vytvořit úplně nový sloupec



  1. Typy kurzoru SQL Server - Kurzor KEYSET | Kurz SQL Server / Kurz TSQL

  2. Jak co nejtransparentněji migrovat existující tabulku Postgres na rozdělenou tabulku?

  3. T-SQL úterý #64:Jeden spouštěč nebo mnoho?

  4. Nasazení databáze z ovládání zdroje