Autor Zpráva
Ecrazit
Profil *
Zdravím, mám dvě tabulky s uživateli. První tabulka users obsahuje všechna povinná data a tabulka users_data obsahuje nepovinná data.

users:
Create Table
users,"CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) COLLATE utf8_czech_ci DEFAULT NULL,
  `password` char(128) COLLATE utf8_czech_ci DEFAULT NULL,
  `email` varchar(50) COLLATE utf8_czech_ci DEFAULT NULL,
  `verified` tinyint(1) DEFAULT '1',
  `deleted` tinyint(1) DEFAULT '0',
  `role` varchar(20) COLLATE utf8_czech_ci DEFAULT 'member',
  `registered` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email` (`email`),
  CONSTRAINT `users_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users_data` (`users_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci"

users_data:
Create Table
users_data,"CREATE TABLE `users_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `users_id` int(11) NOT NULL,
  `firstname` varchar(30) COLLATE utf8_czech_ci DEFAULT NULL,
  `lastname` varchar(50) COLLATE utf8_czech_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_id` (`users_id`),
  KEY `user_id` (`users_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci"

Pokud se ale do jakékoli z nich pokusím vložit data, dostanu tento error:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`nette`.`users`, CONSTRAINT `users_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users_data` (`users_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Jak se toho zbavím abych moh do tabulek normálně zapisovat?
Kajman
Profil
Zrušte si cizí klíč users_ibfk_1. Cizí klíč jste si chtěl dát asi do tabulky users_data ukazující na tabulku users, ale máte to naopak.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0