2017-01-24 2 views
0

Я создаю приложение CRUD в PHP & MySql. Он использует две таблицы, называемые пользователи и medical_records:Почему первичный ключ дубликат

CREATE TABLE `users` (
`id` int(11) NOT NULL, 
`username` varchar(255) NOT NULL, 
`first_name` varchar(255) NOT NULL, 
`last_name` varchar(255) NOT NULL, 
`email` varchar(255) NOT NULL, 
`password` varchar(1024) NOT NULL, 
`validation_code` text NOT NULL, 
`active` tinyint(1) NOT NULL, 
`telefon` varchar(255) DEFAULT NULL, 
`oras` varchar(255) DEFAULT NULL, 
`adresa` text, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE medical_records (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `fo` VARCHAR(255), 
    `condition` VARCHAR(255), 
    `transfer` VARCHAR(255), 
    `memo` text(1024), 
    `body_temperature` VARCHAR(255), 
    PRIMARY KEY (`id`), 
    CONSTRAINT FK_medical_records_1 
    FOREIGN KEY (user_id) REFERENCES users(id) 
    ON UPDATE CASCADE ON DELETE CASCADE 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 

«бизнес-логика» этих таблиц: каждый пользователь имеет один (только один) медицинскую карту.

Я использовал и протестировал приложение, когда у него были только пользователей стол. Регистрация и логин работал отлично, поэтому я пришел к выводу, что источник проблемы не может быть кодом приложения (PHP).

позже я легированная таблицу пользователи и добавил 2 свежих таблицу приложение теперь использует (пользователей и medical_records).

В этот момент, когда я пытаюсь зарегистрировать второй пользователь, я получаю ошибку:

QUERY FAILED: Duplicate entry '0' for key 'PRIMARY' 

Это происходит, несмотря на то, что обе таблицы имеет автоматически увеличивается первичные ключи. Что может быть объяснением этого?

+4

Вы говорите, что обе таблицы имеют автоматически увеличивающиеся первичные ключи, но я не вижу автоматического увеличения в вашей таблице 'users'. – treegarden

+0

Если эта проблема сохраняется после исправления проблемы автоматического увеличения в первой таблице, пожалуйста, отредактируйте свой вопрос, чтобы показать последовательность запросов, используемых для регистрации новых пользователей. –

+0

С меткой 'jQuery', да? – urbz

ответ

2

id в таблице users не установлен на AUTO_INCREMENT. вот почему это происходит.

+0

Глупый мне! Спасибо! :) –