2017-03-27 2 views
0

Ich habe die folgende Tabelle in mysql:Einzigartige Wert, wenn INSERT INTO mysql

CREATE TABLE `kampbs` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`user` varchar(20) COLLATE utf8_danish_ci DEFAULT NULL, 
`k1` varchar(1) COLLATE utf8_danish_ci DEFAULT NULL, 
`k1r` varchar(10) COLLATE utf8_danish_ci DEFAULT NULL, 
`k2` varchar(1) COLLATE utf8_danish_ci DEFAULT NULL, 
`k2r` varchar(10) COLLATE utf8_danish_ci DEFAULT NULL, 
`k3` varchar(1) COLLATE utf8_danish_ci DEFAULT NULL, 
`k3r` varchar(10) COLLATE utf8_danish_ci DEFAULT NULL, 
`week` int(2) DEFAULT NULL, 
`grp` varchar(11) COLLATE utf8_danish_ci DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci 

ich eine Form haben, dass INSERT INTO die Felder in der Datenbank, aber es sollte nur möglich sein, einmal pro Woche pr einfügen Benutzer. Daher sollte überprüft werden, ob die Spalten "Benutzer" und "Woche" zusammen eindeutig sind. Sinn ergeben? :/

Lassen Sie uns sagen, dass der Benutzer 'Freak' 13 in Woche einreichen, sollte er 13 erneut nicht

Ich verwende die folgende $ sql in Woche einreichen in der Lage:

$sql = "INSERT INTO kampbs(user, k1, k1r, k2, k2r, k3, k3r, week, grp) VALUES('$username', '$k1', '$k1r', '$k2', '$k2r', '$k3', '$k3r', '$week', '$grp')"; 
+1

werden Sie einen unqiue Index für Verbundschlüssel hinzufügen sollen (Benutzer, Woche) – scaisEdge

+0

einen eindeutigen Index auf die Feldkombination hinzufügen welche So könnte einzigartig sein – Jens

Antwort

0

Sie können eine Einschränkung zu Ihrer Tabelle hinzufügen, so dass der Benutzer/Woche Paar einzigartigen gezwungen wird

ALTER TABLE `kampbs` ADD UNIQUE `unique_index`(`user`, `week`); 
+0

Vielen Dank !! :) –