foreign key

1. foreign key

Gesiel G
clickbr

(usa Debian)

Enviado em 02/04/2011 - 22:57h

CREATE TABLE `fornecedores` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`empresa` CHAR(30) NOT NULL
) TYPE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `itens` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`materiais` CHAR(30) NOT NULL
) TYPE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `ordemcompra` (
`fornecedores_id` INT NOT NULL,
`itens_id` INT NOT NULL,
`date` DATE NOT NULL,
`valor` DOUBLE NOT NULL,
PRIMARY KEY(`fornecedores_id`, `itens_id`, `date`),
INDEX i2 (`itens_id`),
FOREIGN KEY (`fornecedores_id`) REFERENCES fornecedores(`id`) ON DELETE CASCADE,
FOREIGN KEY (`itens_id`) REFERENCES itens(`id`) ON DELETE RESTRICT
) TYPE=InnoDB DEFAULT CHARSET=latin1;
=========
Estou criando 3 tabelas, fornecedores, itens e ordem de compra. Preciso que na tabela ordem de compra, em vez de ID da tabela fornecedores e itens, me mostre os campos empresa e materiais das respectivas tabelas. Acredito que tenha uma forma nativa do mysql fazer isso com a foreign key.
Obrigado!


  


2. Solucionado!

Gesiel G
clickbr

(usa Debian)

Enviado em 04/04/2011 - 20:27h

CREATE TABLE IF NOT EXISTS `fornecedores` (
`Reg` int(10) unsigned not null auto_increment,
`Cod` DECIMAL(10,0) default '1',
`Empresa` varchar(25) DEFAULT NULL,
PRIMARY KEY (`Reg`),
UNIQUE KEY `key1` (`Cod`),
UNIQUE KEY `key2` (`Empresa`),
KEY `Empresa` (`Empresa`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `materiais` (
`Reg` int(10) unsigned not null auto_increment,
`Cod` DECIMAL(10,0) default '1',
`Categoria` varchar(25) DEFAULT NULL,
`Itens` varchar(25) DEFAULT NULL,
PRIMARY KEY (`Reg`),
UNIQUE KEY `key1` (`Cod`),
UNIQUE KEY `key2` (`Categoria`),
UNIQUE KEY `key3` (`Itens`),
KEY `Itens` (`Itens`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `ordemcompra` (
`Reg` int(10) unsigned not null auto_increment,
`Cod` DECIMAL(10,0) default '1',
`Empresa` varchar(25) DEFAULT NULL,
`Itens` varchar(25) DEFAULT NULL,
PRIMARY KEY (`Reg`),
UNIQUE KEY `Cod` (`Cod`),
CONSTRAINT `fk1` FOREIGN KEY (`Empresa`) REFERENCES `fornecedores` (`Empresa`),
CONSTRAINT `fk2` FOREIGN KEY (`Itens`) REFERENCES `materiais` (`Itens`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


####
# O que eu precisava era uma combobox de tabelas referencias.
# Postei a minha solução, talvez sirva para mais alguém.
# Abs!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts