I understand your question. I am so sorry to be so slow today :-)

You want to know how to create a PRIMARY KEY that is composed of more than 
one column.

Most of the time when we declare a PRIMARY KEY on a table, we do  it by 
putting the keywords "PRIMARY KEY" at the end of the column definition, 
like this:

CREATE TABLE example1(
ID int not null auto_increment primary key,
field2 char(5) ,
... more fields ...
)

But if you need more than one column to define the PRIMARY KEY for a table 
you CANNOT say:

CREATE TABLE example2(
id_table1 int not null primary key,
id_table2 int not null primary key
)

because, in MySQL that is a syntax error. What you need is:

CREATE TABLE example3 (
ID int auto_increment,
id_table1 int not null,
id_table2 int not null,
PRIMARY KEY(id_table1, id_table2)
)

You may be able to read: 
http://dev.mysql.com/doc/mysql/pt/CREATE_TABLE.html#IDX1582
for a better explanation.

Yours,
Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

"Rui Monteiro" <[EMAIL PROTECTED]> wrote on 07/20/2004 01:02:36 PM:

> Hello,
> 
> The example I gave you has 2 foreign keys that are primary keys on that 
table.
> 
> Heres na example
> 
> Costumer
> Id (PK)
> Name
> 
> Shopping list
> ID (PK)
> ID_costumer
> ID_product
> 
> 
> The relationship between these 2 tables is ?infinite? to ?infinite?.
> The way to resolve this is by creating a table in the middle like this:
> 
> COS/SHOP
> ID_Cust (PK)
> ID_Shop (PK)
> 
> Costumer ? 1 : N ? COS/SHOP
> Shopping list ? 1 : N ? COS/SHOP
> 
> Thanks
> 
> 
> 
> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Enviada: terça-feira, 20 de Julho de 2004 17:06
> Para: Rui Monteiro
> Cc: [EMAIL PROTECTED]
> Assunto: Re: Primary Keys
> 
> 
> Your example has 1 Primary Key and 2 Foreign Keys. 
> 
> Please post a sample data structure and state (not in SQL) what 
> situation you want to achieve.  If you need more constraints on the 
> table to prevent creating duplicates you can create additional 
> UNIQUE Keys but, by definition, any table should have only one Primary 
Key. 
> 
> Yours, 
> 
> Shawn Green
> Database Administrator
> Unimin Corporation - Spruce Pine 
> 
> "Rui Monteiro" <[EMAIL PROTECTED]> wrote on 07/20/2004 11:54:00 
AM:
> 
> > Mello,
> > 
> > 
> > 
> > I was wondering why canto r how can I put 2 primary keys on a table?
> > 
> > 
> > 
> > Here's na example on Oracle language:
> > 
> > 
> > 
> > CREATE TABLE FacturaMusica(
> > 
> >             CodFactura number(4), CONSTRAINTS 
FK_FacturaMusica_CodFactura
> > FOREIGN KEY(CodFactura) REFERENCES Factura(CodFactura),
> > 
> >             CodMusica number(4), CONSTRAINTS 
FK_FacturaMusica_CodMusica
> > FOREIGN KEY(CodMusica) REFERENCES Musica(CodMusica),
> > 
> >             CONSTRAINT PK_FacturaMusica PRIMARY 
KEY(CodFactura,CodMusica)
> > 
> > );
> > 
> > 
> > 
> > This is very usefull to break "n" to "n" relations.
> > 
> > 
> > 
> > Any tip?
> > 
> > 
> > 
> > Thanks
> > 
> > 
> > 
> > Rui
> > 

Reply via email to