Programming And More
Mon, 8/2/2010

If you work with Postgresql or even Oracle something like foreign keys are used on a daily basis…such constraints are very welcome and used all over the world except in mysql with myisam.

You have to turn on innodb for that.

create table car (
  id integer primary key not null auto_increment,
  name varchar not null
) ENGINE=INNODB;

create table car_owner (
  id integer primary key not null auto_increment,
  first_name varchar(100) not null,
  last_name varchar(100) not null,
  car integer not null,
  foreign key (car) references car(id)
) ENGINE=INNODB;

insert into car (name) values ('Audi 80');
insert into car (name) values ('Mercedes 190D');

insert into car_owner (first_name, last_name, car)
values ('Andreas','Schipplock',1); # works!

insert into car_owner (first_name, last_name, car)
values ('Andreas','Schipplock',2); # works!

insert into car_owner (first_name, last_name, car)
values ('Andreas','Schipplock',3); # fails! intended behavior :)



That’s it…simple.

Posted 9 months ago
blog comments powered by Disqus
Latest Tweets