Hello,
Ich habe eine Tabelle in MySQL:
CREATE TABLE essen (
id int(10) NOT NULL auto_increment ,
name varchar(250) NOT NULL default '',
fleisch varchar(50) default NULL,
fisch varchar(50) default NULL,
sweets varchar(250) NOT NULL default '',
obst varchar(250) NOT NULL default '',
datum datetime NOT NULL default '0000-00-00 00:00:00',
primary key (id)
);
Damit wäre dann schon mal Unique für id gewährleistet, den PKs sind immer Unique.
Und dann
create unique index name on essen (name);
Dann hast Du auf das einzelfeld name einen unique index gesetzt.
Frage Nr. 2 ist zu Primary key:
Ist das so korrekt, oder?
PRIMARY KEY (id), siehe oben.
oder kann ich hier das Wort "PRIMARY KEY" auch
im create syntax hinter NOT NULL oder so anhaengen?
Nee, erst am Ende, weil dann gelich der Index angelegt werden kann. dazu muss MySQL aber erst die Lage der Felder kennen, die am Index beteiligt sind. Das Statement wird im Singlepass von links nach rechts ausgewertet und man kann ja nicht einen Key setzen auf Felder, die es noch nicht gibt.
UNIQUE id_name (id,name) id_name ist der name des Index
UNIQUE name (id, name) oder so, das geht aber nicht, wenn
name schon weg ist als Indexname.
Vielen lieben Dank,
Bitteschön.
Tom