Autor | Zpráva | ||
---|---|---|---|
Ecrazit Profil * |
#1 · Zasláno: 31. 8. 2012, 18:56:43
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 |
#2 · Zasláno: 31. 8. 2012, 21:12:52
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.
|
||
Časová prodleva: 13 let
|
0