Повторяющийся ввод первичного ключа - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать 2 таблицы для опроса и ответов на опрос, используя следующее SQL. Я получаю сообщение об ошибке «Дублирующая запись« 1 »для ключа« PRIMARY ». Любая помощь приветствуется.

CREATE DATABASE IF NOT EXISTS `phppoll` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `phppoll`;

CREATE TABLE IF NOT EXISTS `polls` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `title` text NOT NULL,
    `desc` text NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `polls` (`id`, `title`, `desc`) VALUES (1, 'What''s your favorite way to browse?', '');

INSERT INTO `polls` (`id`, `title`, `desc`) VALUES (2, 'What''s your favorite way to use tech?', '');

CREATE TABLE IF NOT EXISTS `poll_answers` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `poll_id` int(11) NOT NULL,
    `title` text NOT NULL,
    `votes` int(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `poll_answers` (`id`, `poll_id`, `title`, `votes`) VALUES (1, 1, 'Laptop', 0), (2, 1, 'Desktop', 0), (3, 1, 'Tablet', 0), (4, 1, 'Other', 0);

INSERT INTO `poll_answers` (`id`, `poll_id`, `title`, `votes`) VALUES (2, 1, 'Laptop', 0), (2, 2, 'Desktop', 0), (2, 3, 'Tablet', 0), (2, 4, 'Other', 0);

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я думаю, что если вы попробуете INSERT IGNORE, это может помочь вам, go здесь для более подробной информации:

(https://www.mysqltutorial.org/mysql-insert-ignore/)

0 голосов
/ 16 апреля 2020

Как я отмечаю в своем комментарии, ваш код в порядке.

Возможно, ваша проблема связана с CREATE TABLE IF NOT EXISTS.

Возможно, вы выполняете код несколько раз, и таблица не будет заменена во второй раз. Вместо этого вы хотите DROP TABLE IF EXISTS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...