2016-01-23 8 views
0

Операция завершена с ошибками, когда я перешел инженер, я получаю эту ошибку: Как это связано с уникальными ключами? или нет? Из-за этой ошибки он обрабатывает некоторые таблицы, а другие таблицы не создаются с данными.Операции с ошибками

Executing SQL script in server 
ERROR: Error 1062: Duplicate entry '1' for key 'PRIMARY' 
SQL Code: 
     INSERT INTO `mydb`.`Team` (`idTeam`, `Naam`, `Stad`) VALUES (01, 'AZ', 'Alkmaar') 

SQL script execution finished: statements: 21 succeeded, 1 failed 

Fetching back view definitions in final form. 
Nothing to fetch 

Это код, который я инженер.

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
    SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
    SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; 

    -- ----------------------------------------------------- 
    -- Schema mydb 
    -- ----------------------------------------------------- 
    CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ; 
    USE `mydb` ; 

    -- ----------------------------------------------------- 
    -- Table `mydb`.`Team` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Team` (
     `idTeam` INT NOT NULL, 
     `Naam` VARCHAR(45) NULL, 
     `Stad` VARCHAR(45) NULL, 
     PRIMARY KEY (`idTeam`)) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Persoon` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Persoon` (
     `idPersoon` INT NOT NULL, 
     `Achternaam` VARCHAR(45) NULL, 
     `Voornaam` VARCHAR(45) NULL, 
     `Geboortedatum` DATE NULL, 
     PRIMARY KEY (`idPersoon`)) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Scheidsrechter` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Scheidsrechter` (
     `idScheids` INT NOT NULL, 
     PRIMARY KEY (`idScheids`), 
     CONSTRAINT `fk_Scheidsrechter_Persoon1` 
     FOREIGN KEY (`idScheids`) 
     REFERENCES `mydb`.`Persoon` (`idPersoon`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Wedstrijd` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Wedstrijd` (
     `idWedstrijd` INT NOT NULL, 
     `Scheidsrechter_idScheids` INT NOT NULL, 
     `Grensrechter1` INT NULL, 
     `Grensrechter2` INT NULL, 
     `Team1` INT NULL, 
     `Team2` INT NULL, 
     `ScoreTeam1` INT NULL, 
     `ScoreTeam2` INT NULL, 
     PRIMARY KEY (`idWedstrijd`), 
     INDEX `fk_Wedstrijd_Scheidsrechter1_idx` (`Scheidsrechter_idScheids` ASC), 
     INDEX `fk_Wedstrijd_Scheidsrechter2_idx` (`Grensrechter1` ASC), 
     INDEX `fk_Wedstrijd_Scheidsrechter3_idx` (`Grensrechter2` ASC), 
     INDEX `fk_Wedstrijd_Team1_idx` (`Team1` ASC), 
     INDEX `fk_Wedstrijd_Team2_idx` (`Team2` ASC), 
     CONSTRAINT `fk_Wedstrijd_Scheidsrechter1` 
     FOREIGN KEY (`Scheidsrechter_idScheids`) 
     REFERENCES `mydb`.`Scheidsrechter` (`idScheids`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Wedstrijd_Scheidsrechter2` 
     FOREIGN KEY (`Grensrechter1`) 
     REFERENCES `mydb`.`Scheidsrechter` (`idScheids`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Wedstrijd_Scheidsrechter3` 
     FOREIGN KEY (`Grensrechter2`) 
     REFERENCES `mydb`.`Scheidsrechter` (`idScheids`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Wedstrijd_Team1` 
     FOREIGN KEY (`Team1`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Wedstrijd_Team2` 
     FOREIGN KEY (`Team2`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Locatie` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Locatie` (
     `idLocatie` INT NOT NULL AUTO_INCREMENT, 
     `Naam` VARCHAR(45) NULL, 
     `Stad` VARCHAR(45) NULL, 
     `Wedstrijd_idWedstrijd` INT NOT NULL, 
     PRIMARY KEY (`idLocatie`, `Wedstrijd_idWedstrijd`), 
     INDEX `fk_Locatie_Wedstrijd1_idx` (`Wedstrijd_idWedstrijd` ASC), 
     CONSTRAINT `fk_Locatie_Wedstrijd1` 
     FOREIGN KEY (`Wedstrijd_idWedstrijd`) 
     REFERENCES `mydb`.`Wedstrijd` (`idWedstrijd`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Koppel Team & Persoon` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Koppel Team & Persoon` (
     `ID` INT NOT NULL, 
     `Persoon_idPersoon` INT NOT NULL, 
     `Team_idTeam` INT NOT NULL, 
     INDEX `fk_Koppel Team & Persoon_Persoon_idx` (`Persoon_idPersoon` ASC), 
     INDEX `fk_Koppel Team & Persoon_Team1_idx` (`Team_idTeam` ASC), 
     PRIMARY KEY (`ID`), 
     CONSTRAINT `fk_Koppel Team & Persoon_Persoon` 
     FOREIGN KEY (`Persoon_idPersoon`) 
     REFERENCES `mydb`.`Persoon` (`idPersoon`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Koppel Team & Persoon_Team1` 
     FOREIGN KEY (`Team_idTeam`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Speler` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Speler` (
     `idSpeler` INT NOT NULL, 
     `Positie` VARCHAR(45) NULL, 
     `Rugnummer` VARCHAR(2) NULL, 
     `Team_idTeam` INT NOT NULL, 
     PRIMARY KEY (`idSpeler`), 
     INDEX `fk_Speler_Team1_idx` (`Team_idTeam` ASC), 
     CONSTRAINT `fk_Speler_Team1` 
     FOREIGN KEY (`Team_idTeam`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Speler_Persoon1` 
     FOREIGN KEY (`idSpeler`) 
     REFERENCES `mydb`.`Persoon` (`idPersoon`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Coach` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Coach` (
     `idCoach` INT NOT NULL AUTO_INCREMENT, 
     `Team_idTeam` INT NOT NULL, 
     PRIMARY KEY (`idCoach`), 
     INDEX `fk_Coach_Team1_idx` (`Team_idTeam` ASC), 
     CONSTRAINT `fk_Coach_Team1` 
     FOREIGN KEY (`Team_idTeam`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Coach_Persoon1` 
     FOREIGN KEY (`idCoach`) 
     REFERENCES `mydb`.`Persoon` (`idPersoon`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Grensrechter` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Grensrechter` (
     `idGrensrechter` INT NOT NULL, 
     `Achternaam` VARCHAR(45) NULL, 
     `Voornaam` VARCHAR(45) NULL, 
     PRIMARY KEY (`idGrensrechter`)) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Team_speelt_Wedstrijd` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Team_speelt_Wedstrijd` (
     `Team_idTeam` INT NOT NULL, 
     `Wedstrijd_idWedstrijd` INT NOT NULL, 
     PRIMARY KEY (`Team_idTeam`, `Wedstrijd_idWedstrijd`), 
     INDEX `fk_Team_has_Wedstrijd_Wedstrijd1_idx` (`Wedstrijd_idWedstrijd` ASC), 
     INDEX `fk_Team_has_Wedstrijd_Team1_idx` (`Team_idTeam` ASC), 
     CONSTRAINT `fk_Team_has_Wedstrijd_Team1` 
     FOREIGN KEY (`Team_idTeam`) 
     REFERENCES `mydb`.`Team` (`idTeam`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Team_has_Wedstrijd_Wedstrijd1` 
     FOREIGN KEY (`Wedstrijd_idWedstrijd`) 
     REFERENCES `mydb`.`Wedstrijd` (`idWedstrijd`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    -- ----------------------------------------------------- 
    -- Table `mydb`.`Wedstrijd_word_gespeeld_op_Locatie` 
    -- ----------------------------------------------------- 
    CREATE TABLE IF NOT EXISTS `mydb`.`Wedstrijd_word_gespeeld_op_Locatie` (
     `Wedstrijd_idWedstrijd` INT NOT NULL, 
     `Locatie_idLocatie` INT NOT NULL, 
     PRIMARY KEY (`Wedstrijd_idWedstrijd`, `Locatie_idLocatie`), 
     INDEX `fk_Wedstrijd_has_Locatie_Locatie1_idx` (`Locatie_idLocatie` ASC), 
     INDEX `fk_Wedstrijd_has_Locatie_Wedstrijd1_idx` (`Wedstrijd_idWedstrijd` ASC), 
     CONSTRAINT `fk_Wedstrijd_has_Locatie_Wedstrijd1` 
     FOREIGN KEY (`Wedstrijd_idWedstrijd`) 
     REFERENCES `mydb`.`Wedstrijd` (`idWedstrijd`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION, 
     CONSTRAINT `fk_Wedstrijd_has_Locatie_Locatie1` 
     FOREIGN KEY (`Locatie_idLocatie`) 
     REFERENCES `mydb`.`Locatie` (`idLocatie`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
    ENGINE = InnoDB; 


    SET [email protected]_SQL_MODE; 
    SET [email protected]_FOREIGN_KEY_CHECKS; 
    SET [email protected]_UNIQUE_CHECKS; 

    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Team` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Team` (`idTeam`, `Naam`, `Stad`) VALUES (01, 'AZ', 'Alkmaar'); 
    INSERT INTO `mydb`.`Team` (`idTeam`, `Naam`, `Stad`) VALUES (02, 'AJAX', 'Amsterdam'); 
    INSERT INTO `mydb`.`Team` (`idTeam`, `Naam`, `Stad`) VALUES (03, 'Ado Den Haag', 'Den Haag'); 
    INSERT INTO `mydb`.`Team` (`idTeam`, `Naam`, `Stad`) VALUES (04, 'Feyenoord', 'Rotterdam'); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Persoon` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (01, 'Klop', 'Hans', '1992-12-08'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (02, 'Bennen', 'Viktor', '1993-09-30'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (03, 'Naalt', 'Klaas', '1990-01-02'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (04, 'Strepp', 'Jurgen', '1991-02-21'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (91, 'Brul', 'Ada', '1970-04-23'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (92, 'Goos', 'Silvester', '1986-04-15'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (93, 'Keizer', 'Jan', '1976-12-09'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (94, 'Leips', 'Omid', '1980-06-12'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (50, 'Walle', 'David', '1978-04-04'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (51, 'Cum', 'Frank', '1977-03-12'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (101, 'van den Brom', 'John', '1968-05-30'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (102, 'de Boer', 'Frank', '1972-06-08'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (103, 'Fraser', 'Henk', '1969-07-10'); 
    INSERT INTO `mydb`.`Persoon` (`idPersoon`, `Achternaam`, `Voornaam`, `Geboortedatum`) VALUES (104, 'Bronckhorst', 'Giovanni', '1970-08-16'); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Scheidsrechter` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Scheidsrechter` (`idScheids`) VALUES (91); 
    INSERT INTO `mydb`.`Scheidsrechter` (`idScheids`) VALUES (92); 
    INSERT INTO `mydb`.`Scheidsrechter` (`idScheids`) VALUES (93); 
    INSERT INTO `mydb`.`Scheidsrechter` (`idScheids`) VALUES (94); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Wedstrijd` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Wedstrijd` (`idWedstrijd`, `Scheidsrechter_idScheids`, `Grensrechter1`, `Grensrechter2`, `Team1`, `Team2`, `ScoreTeam1`, `ScoreTeam2`) VALUES (1, 50, 91, 92, 01, 02, 2, 1); 
    INSERT INTO `mydb`.`Wedstrijd` (`idWedstrijd`, `Scheidsrechter_idScheids`, `Grensrechter1`, `Grensrechter2`, `Team1`, `Team2`, `ScoreTeam1`, `ScoreTeam2`) VALUES (2, 51, 94, 93, 03, 04, 1, 3); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Locatie` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Locatie` (`idLocatie`, `Naam`, `Stad`, `Wedstrijd_idWedstrijd`) VALUES (1, 'AFAS Stadion', 'Alkmaar', 1); 
    INSERT INTO `mydb`.`Locatie` (`idLocatie`, `Naam`, `Stad`, `Wedstrijd_idWedstrijd`) VALUES (2, 'Arena', 'Amsterdam', 2); 
    INSERT INTO `mydb`.`Locatie` (`idLocatie`, `Naam`, `Stad`, `Wedstrijd_idWedstrijd`) VALUES (3, 'Kyocera Stadion', 'Den Haag', 3); 
    INSERT INTO `mydb`.`Locatie` (`idLocatie`, `Naam`, `Stad`, `Wedstrijd_idWedstrijd`) VALUES (4, 'De Kuip', 'Rotterdam', 4); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Speler` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Speler` (`idSpeler`, `Positie`, `Rugnummer`, `Team_idTeam`) VALUES (01, 'Aanvaller', '9', 01); 
    INSERT INTO `mydb`.`Speler` (`idSpeler`, `Positie`, `Rugnummer`, `Team_idTeam`) VALUES (02, 'Aanvaller', '19', 01); 
    INSERT INTO `mydb`.`Speler` (`idSpeler`, `Positie`, `Rugnummer`, `Team_idTeam`) VALUES (03, 'Aanvaller', '21', 01); 
    INSERT INTO `mydb`.`Speler` (`idSpeler`, `Positie`, `Rugnummer`, `Team_idTeam`) VALUES (04, 'Middenvelder', '4', 01); 

    COMMIT; 


    -- ----------------------------------------------------- 
    -- Data for table `mydb`.`Coach` 
    -- ----------------------------------------------------- 
    START TRANSACTION; 
    USE `mydb`; 
    INSERT INTO `mydb`.`Coach` (`idCoach`, `Team_idTeam`) VALUES (101, 01); 
    INSERT INTO `mydb`.`Coach` (`idCoach`, `Team_idTeam`) VALUES (102, 02); 
    INSERT INTO `mydb`.`Coach` (`idCoach`, `Team_idTeam`) VALUES (103, 03); 
    INSERT INTO `mydb`.`Coach` (`idCoach`, `Team_idTeam`) VALUES (104, 04); 

    COMMIT; 

ответ

1

поскольку IDteam ваш первичный ключ, он не может иметь одинаковое значение в два раза. Вы пытаетесь добавить несколько строк с 1 в качестве значения первичного ключа. Это то, что дает вам ошибку.

Вы можете использовать AUTO_INCREMENT, чтобы сделать первичный ключ increse автоматически.

1

Обычно, когда целое столбец объявлен в качестве первичного ключа, вы используете auto_increment:

CREATE TABLE IF NOT EXISTS `mydb`.`Team` (
    `idTeam` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `Naam` VARCHAR(45) NULL, 
    `Stad` VARCHAR(45) NULL 
); 

Затем, когда вы вводите данные, как правило, просто оставьте столбец из:

INSERT INTO `mydb`.`Team`(`Naam`, `Stad`) 
    VALUES ('AZ', 'Alkmaar'); 

Значение автоматически назначается.

Одна из причин, по которой ваш скрипт может получить ошибку, потому что он запускается более одного раза. CREATE TABLE IF NOT EXISTS оставляет существующие данные в таблице. Возможно, вы захотите очистить таблицы перед вставкой новых строк: TRUNCATE TABLE mydb.Team. Или, более разговорно, DROP TABLE IF EXISTS до CREATE, так что вы знаете, что он пуст каждый раз.

 Смежные вопросы

  • Нет связанных вопросов^_^