Relacionamento PK e FK no mysql
Estimados colegas tenho o Mysql 5.0.45 instalado, pois não estou conseguindo fazer o relacionamento das tabelas ´FORNECEDOR ´ e ´LOJA´
Create table FORNECEDOR (
LOJCOD Int (6) NOT NULL AUTO_INCREMENT,
FORCOD Int (6) NOT NULL AUTO_INCREMENT,
FORREF Varchar(10) NOT NULL,
FORFAN Varchar(50) NOT NULL,
FORRAZ Varchar(50) NOT NULL,
FORCLA Enum() NOT NULL,
FORTEL Varchar(15) NOT NULL,
FORFAX Varchar(15),
FOREMA Varchar(100) NOT NULL,
FORCEP Varchar(10) NOT NULL,
FOREND Varchar(20),
FORBAI Varchar(50) NOT NULL,
FORCID Varchar(50) NOT NULL,
FOREST Char(2) NOT NULL,
FORPAI Varchar(20) NOT NULL,
FORCNP Varchar(20) NOT NULL,
FORIMU Varchar(20) NOT NULL,
FORIES Varchar(20) NOT NULL,
FORCAD Date,
FORDPA Varchar(6),
FORSTA Char(2),
FORBAN Varchar(10),
FORAGE Varchar(10),
FORCON Varchar(10),
FORTAB Varchar(10),
FORTAT Varchar(50),
FORDVI Enum(),
FORCAR Char(3),
FORPRA Char(3),
FOROBC Varchar(250),
Primary Key (FORCOD,FORCNP)
Foreign Key (LOJCOD)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Create table LOJA (
LOJCOD Int NOT NULL AUTO_INCREMENT,
LOJREF Varchar(10) NOT NULL,
LOJFAN Varchar(50) NOT NULL,
LOJRAZ Varchar(50) NOT NULL,
LOJTEL Varchar(15) NOT NULL,
LOJFAX Varchar(15) NOT NULL,
LOJEMA Varchar(100) NOT NULL,
LOJCEP Varchar(10) NOT NULL,
LOJEND Varchar(100) NOT NULL,
LOJBAI Varchar(50) NOT NULL,
LOJCID Varchar(50) NOT NULL,
LOJEST Char(2) NOT NULL,
LOJPAI Varchar(20) NOT NULL,
LOJCNP Varchar(20) NOT NULL,
LOJIMU Varchar(20),
LOJIES Varchar(20) NOT NULL,
LOJCAD Date,
LOJSTA Char(2),
LOJBAN Varchar(10),
LOJAGE Varchar(10),
LOJCON Varchar(10),
LOJTAB Varchar(10),
LOJTAT Varchar(50),
LOJOBS Varchar(250),
Primary Key (LOJCOD,LOJCNP,LOJIMU)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
Alter table FORNECEDOR add Foreign Key (LOJCOD) references LOJA (LOJCOD) on delete restrict on update restrict;
Create table FORNECEDOR (
LOJCOD Int (6) NOT NULL AUTO_INCREMENT,
FORCOD Int (6) NOT NULL AUTO_INCREMENT,
FORREF Varchar(10) NOT NULL,
FORFAN Varchar(50) NOT NULL,
FORRAZ Varchar(50) NOT NULL,
FORCLA Enum() NOT NULL,
FORTEL Varchar(15) NOT NULL,
FORFAX Varchar(15),
FOREMA Varchar(100) NOT NULL,
FORCEP Varchar(10) NOT NULL,
FOREND Varchar(20),
FORBAI Varchar(50) NOT NULL,
FORCID Varchar(50) NOT NULL,
FOREST Char(2) NOT NULL,
FORPAI Varchar(20) NOT NULL,
FORCNP Varchar(20) NOT NULL,
FORIMU Varchar(20) NOT NULL,
FORIES Varchar(20) NOT NULL,
FORCAD Date,
FORDPA Varchar(6),
FORSTA Char(2),
FORBAN Varchar(10),
FORAGE Varchar(10),
FORCON Varchar(10),
FORTAB Varchar(10),
FORTAT Varchar(50),
FORDVI Enum(),
FORCAR Char(3),
FORPRA Char(3),
FOROBC Varchar(250),
Primary Key (FORCOD,FORCNP)
Foreign Key (LOJCOD)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Create table LOJA (
LOJCOD Int NOT NULL AUTO_INCREMENT,
LOJREF Varchar(10) NOT NULL,
LOJFAN Varchar(50) NOT NULL,
LOJRAZ Varchar(50) NOT NULL,
LOJTEL Varchar(15) NOT NULL,
LOJFAX Varchar(15) NOT NULL,
LOJEMA Varchar(100) NOT NULL,
LOJCEP Varchar(10) NOT NULL,
LOJEND Varchar(100) NOT NULL,
LOJBAI Varchar(50) NOT NULL,
LOJCID Varchar(50) NOT NULL,
LOJEST Char(2) NOT NULL,
LOJPAI Varchar(20) NOT NULL,
LOJCNP Varchar(20) NOT NULL,
LOJIMU Varchar(20),
LOJIES Varchar(20) NOT NULL,
LOJCAD Date,
LOJSTA Char(2),
LOJBAN Varchar(10),
LOJAGE Varchar(10),
LOJCON Varchar(10),
LOJTAB Varchar(10),
LOJTAT Varchar(50),
LOJOBS Varchar(250),
Primary Key (LOJCOD,LOJCNP,LOJIMU)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
Alter table FORNECEDOR add Foreign Key (LOJCOD) references LOJA (LOJCOD) on delete restrict on update restrict;
Ccaskw
Curtidas 0
Respostas
Daykas
01/12/2007
Amigo! creio que nem as tabelas vc está conseguindo criar. poste ai pelo menos o script correto das tabelas que o ajudamos.
GOSTEI 0
Geovani.geraldi
01/12/2007
ae brother...tenta agora ai
fiz uns comentários dentro das querys....
Create table FORNECEDOR (
LOJCOD Int(6) NOT NULL--voce não pode definir um FK como auto_increment,
FORCOD Int(6) NOT NULL AUTO_INCREMENT,
FORREF Varchar(10) NOT NULL,
FORFAN Varchar(50) NOT NULL,
FORRAZ Varchar(50) NOT NULL,
FORCLA Enum(´t-shirt´, ´polo´, ´dress´) NOT NULL-coloque opçções dentro no tipo do campo,
FORTEL Varchar(15) NOT NULL,
FORFAX Varchar(15),
FOREMA Varchar(100) NOT NULL,
FORCEP Varchar(10) NOT NULL,
FOREND Varchar(20),
FORBAI Varchar(50) NOT NULL,
FORCID Varchar(50) NOT NULL,
FOREST Char(2) NOT NULL,
FORPAI Varchar(20) NOT NULL,
FORCNP Varchar(20) NOT NULL,
FORIMU Varchar(20) NOT NULL,
FORIES Varchar(20) NOT NULL,
FORCAD Date,
FORDPA Varchar(6),
FORSTA Char(2),
FORBAN Varchar(10),
FORAGE Varchar(10),
FORCON Varchar(10),
FORTAB Varchar(10),
FORTAT Varchar(50),
FORDVI Enum(´t-shirt´, ´polo´, ´dress´)--coloque opçções dentro no tipo do campo,
FORCAR Char(3),
FORPRA Char(3),
FOROBC Varchar(250),
Primary Key (FORCOD,FORCNP),
Foreign Key (LOJCOD)
REFERENCES LOJA(LOJCOD)--indique a referencia da FK
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
Create table LOJA (
LOJCOD Int NOT NULL AUTO_INCREMENT,
LOJREF Varchar(10) NOT NULL,
LOJFAN Varchar(50) NOT NULL,
LOJRAZ Varchar(50) NOT NULL,
LOJTEL Varchar(15) NOT NULL,
LOJFAX Varchar(15) NOT NULL,
LOJEMA Varchar(100) NOT NULL,
LOJCEP Varchar(10) NOT NULL,
LOJEND Varchar(100) NOT NULL,
LOJBAI Varchar(50) NOT NULL,
LOJCID Varchar(50) NOT NULL,
LOJEST Char(2) NOT NULL,
LOJPAI Varchar(20) NOT NULL,
LOJCNP Varchar(20) NOT NULL,
LOJIMU Varchar(20),
LOJIES Varchar(20) NOT NULL,
LOJCAD Date,
LOJSTA Char(2),
LOJBAN Varchar(10),
LOJAGE Varchar(10),
LOJCON Varchar(10),
LOJTAB Varchar(10),
LOJTAT Varchar(50),
LOJOBS Varchar(250),
Primary Key (LOJCOD,LOJCNP,LOJIMU)
);
fiz uns comentários dentro das querys....
Create table FORNECEDOR (
LOJCOD Int(6) NOT NULL--voce não pode definir um FK como auto_increment,
FORCOD Int(6) NOT NULL AUTO_INCREMENT,
FORREF Varchar(10) NOT NULL,
FORFAN Varchar(50) NOT NULL,
FORRAZ Varchar(50) NOT NULL,
FORCLA Enum(´t-shirt´, ´polo´, ´dress´) NOT NULL-coloque opçções dentro no tipo do campo,
FORTEL Varchar(15) NOT NULL,
FORFAX Varchar(15),
FOREMA Varchar(100) NOT NULL,
FORCEP Varchar(10) NOT NULL,
FOREND Varchar(20),
FORBAI Varchar(50) NOT NULL,
FORCID Varchar(50) NOT NULL,
FOREST Char(2) NOT NULL,
FORPAI Varchar(20) NOT NULL,
FORCNP Varchar(20) NOT NULL,
FORIMU Varchar(20) NOT NULL,
FORIES Varchar(20) NOT NULL,
FORCAD Date,
FORDPA Varchar(6),
FORSTA Char(2),
FORBAN Varchar(10),
FORAGE Varchar(10),
FORCON Varchar(10),
FORTAB Varchar(10),
FORTAT Varchar(50),
FORDVI Enum(´t-shirt´, ´polo´, ´dress´)--coloque opçções dentro no tipo do campo,
FORCAR Char(3),
FORPRA Char(3),
FOROBC Varchar(250),
Primary Key (FORCOD,FORCNP),
Foreign Key (LOJCOD)
REFERENCES LOJA(LOJCOD)--indique a referencia da FK
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
Create table LOJA (
LOJCOD Int NOT NULL AUTO_INCREMENT,
LOJREF Varchar(10) NOT NULL,
LOJFAN Varchar(50) NOT NULL,
LOJRAZ Varchar(50) NOT NULL,
LOJTEL Varchar(15) NOT NULL,
LOJFAX Varchar(15) NOT NULL,
LOJEMA Varchar(100) NOT NULL,
LOJCEP Varchar(10) NOT NULL,
LOJEND Varchar(100) NOT NULL,
LOJBAI Varchar(50) NOT NULL,
LOJCID Varchar(50) NOT NULL,
LOJEST Char(2) NOT NULL,
LOJPAI Varchar(20) NOT NULL,
LOJCNP Varchar(20) NOT NULL,
LOJIMU Varchar(20),
LOJIES Varchar(20) NOT NULL,
LOJCAD Date,
LOJSTA Char(2),
LOJBAN Varchar(10),
LOJAGE Varchar(10),
LOJCON Varchar(10),
LOJTAB Varchar(10),
LOJTAT Varchar(50),
LOJOBS Varchar(250),
Primary Key (LOJCOD,LOJCNP,LOJIMU)
);
GOSTEI 0