Tom: -> (MySQL) UNIQUE id oder UNIQUE id (id) oder UNIQUE (id) ?

Beitrag lesen

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