Autoincremented id with two primary keys

Autoincremented id with two primary keys

am 07.04.2006 15:30:29 von Alex

Hi all. I have this table:

CREATE TABLE sites_pages (
  id int(6) NOT NULL,
  site_id int(4) NOT NULL,
  name varchar(80) NOT NULL,
  UNIQUE KEY site_id_name (site_id, name),
  PRIMARY KEY (id, site_id)
) TYPE=InnoDB;

I would like to have an auto generated id but for each site. For example:

id  site_id  name
1   1        index
2   1        home
3   1        article
1   2        index
2   2        home
3   2        article

Is it possible to have this done automatically by mysql or I have to lock
the table and do a thing like that:

LOCK TABLE sites_pages;
SELECT MAX(id) AS page_id FROM sites_pages WHERE site_id=1;

take the site_id value and increment by one and then INSERT...

?

Are there alternatives to lock the entire table?

Thanks in advance,

Alex