Уникален запис как стана?

MontefuckeR

Registered
Duplicate entry '0' for key 1
при опит да запиша нещо в бд-то
ето как създадох таблицата:
CREATE TABLE `ii`(
`id` int(8) not null,
`date` varchar(30) not null,
`zaglavie` varchar(120) not null,
`opisanie` varchar(500) not null,
PRIMARY KEY (`id`)
);
?!
 
пич всеки път когато задаваш прайм кей (primary key) той не може да има 2 еднакви стойности , ако в едната колона прайм кея е 1 в следващата не може пак да е 1 - той затова е прайм кей , точно тогава ти казва че имаш дупликиращи се стойности. когато обаче вече си имаш прайм кей в дадена таблица , можеш някоя друга клетка да и кажеш да е unique - има разлика . ти вероятно си мислиш че без да си и казал да е unique тя е станала такава - не , тя просто сигурно ти е прайм кей а той май си е unique by default (не можеш да имаш 2 еднакви реда ако полето ти е прайм кей)
 
P.S. ако не искаш да ти се получават такива глупави грешки , в твоя случай особено можеш направо да направиш така , полето ти което е primary key (в твоя случай 'id') го направи auto_increment - така няма вероятност то да има 2 еднакви стойности :-) . надявам се ме разбра :-)
 
MontefuckeR каза:
аха и само на ид ли се задава?
не е задължително да е на id . auto_increment можеш да изполваш за всяко поле от integer тип (тоест такова което може да взема само числени стойности) . обикнивенно обаче се слага на id ако id е primary key, точно поради причината някой да не се опита да инпутне 2 еднакви стойности за primary key - с auto_increment няма как да стане :-) .
 

Back
Горе