2017-01-24 6 views
0

Ich baue eine CRUD-Anwendung in PHP & MySql. Es verwendet zwei Tabellen, genannt Benutzer und medical_records:Warum ist Primärschlüssel ein Duplikat

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; 

Die „Business Logik“ dieser Tabellen ist: Jeder Benutzer hat eine (nur eins) Krankenakte.

Ich habe die Anwendung verwendet und getestet, als sie nur die Benutzer Tabelle hatte. Registrieren und einloggen hat gut funktioniert, so komme ich zum Schluss, dass die Problemquelle nicht die Anwendung (PHP) Code sein kann.

ich dotiert später die Benutzer Tisch und hinzugefügt, um die 2 frische Tabellen der Anwendung verwendet nun (Benutzer und medical_records).

In diesem Moment, wenn ich versuche, einen zweiten Benutzer zu registrieren, erhalte ich die Fehlermeldung:

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

Dies geschieht trotz der Tatsache, dass beide Tabellen Auto Primärschlüssel erhöht. Was könnte die Erklärung dafür sein?

+4

Sie sagen, dass beide Tabellen automatisch inkrementierten Primärschlüssel haben, aber ich habe kein Autoinkrement in Ihrer 'Benutzer' Tabelle. – treegarden

+0

Wenn dieses Problem weiterhin besteht, nachdem Sie das Problem mit der automatischen Erhöhung in der ersten Tabelle behoben haben, bearbeiten Sie Ihre Frage bitte, um die Abfolge der Abfragen anzuzeigen, die für die Registrierung neuer Benutzer verwendet wurden. –

+0

Markiert mit 'jQuery', nicht wahr? – urbz

Antwort

2

Die id in der users Tabelle ist nicht auf AUTO_INCREMENT festgelegt. deshalb passiert das.

+0

Dumm ich! Vielen Dank! :) –

Verwandte Themen