Visa ett inlägg
Oläst 2010-12-17, 23:42 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Det ska inte vara något kommatecken före REFERENCES:

Kod:
CREATE TABLE person(
    id INT NOT NULL AUTO_INCREMENT,
    name int(11) NOT NULL,
    age int(11) default NULL REFERENCES name(id),
    PRIMARY KEY (id))
Sen såg jag att du glömt att göra kolumnen "name" unik i tabellen "Name" vilket motverkar syftet med den tabellen. Sätt unikt index på den kolumnen.

Utöver det skulle jag rekommendera att inte lagra värde på age utan lagra YearOfBirth i stället och sedan räkna ut ålder utifrån dagens datum. Age är inget stabilt värde utan det förändras med automatik när klockar går. Det är för det mesta bättre att lagra ett stabilt värde och sedan räkna ut de instabila värdena. Detta sagt utan att veta exakt hur din databas kommer att användas.


Kod:
delimiter $$

CREATE TABLE `name` 
(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1$$


Kod:
delimiter $$

CREATE TABLE `person` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` int(11) NOT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
Jag använder version 5.1.53 har inte hunnit uppdatera till 5.5.8 ännu men jag har laddat ner den i alla fall.

Senast redigerad av Conny Westh den 2010-12-18 klockan 00:21
Conny Westh är inte uppkopplad   Svara med citatSvara med citat