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.