sql >> Database teknologi >  >> RDS >> Mysql

MySQL 1062 - Dublet indtastning '0' for nøglen 'PRIMÆR'

Du skal angive den primære nøgle som automatisk stigning

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$$

Med hensyn til kommentaren nedenfor, hvad med:

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

En PRIMÆR NØGLE er et unikt indeks, så hvis det indeholder dubletter, kan du ikke tildele kolonnen til at være unikt indeks, så du skal muligvis oprette en ny kolonne helt



  1. Krøllede seler i T-SQL

  2. SQL Dev 4.2 Top SQL

  3. Kan ikke slette databasen

  4. NULL-værdier inde i NOT IN-sætningen