Chave estrangeira MySql

6 respostas
J

Gente tenho uma tabela chamada veiculo .

E outra chamada cliente.

Gostaria de saber como eu que faço uma chave estrangeira na tabela cliente do id do veiculo.

Eu não consigo , fazer sempre da erro de sintaxe .

Muito Obrigado !

6 Respostas

J

Eu também gostaria de saber se existe algum programa para editar as querys do mySql.

Me falaram do sqlbrowser mais eu não consegui baixar no site do MySql…

Não achei .

Muito Obrigado . !

M

Você pode postar o código para que possamos lhe ajudar?

Bom, tem o Mysql Query Browser, que para baixar, tem que se cadastrar com login e senha no site.

Apesar de que hoje uso o MySql Workbench no MAC OS X.

Boa sorte

M

Você pode baixar o MySql Workbench por aqui

http://dev.mysql.com/downloads/workbench/5.2.html

johnny_g3p

Eu sempre uso o MYSQL Workbench ele é muito bom, também estou com uma duvida de relacionamento entra as tabelas utilizando o mysql workbench, tenho várias tabelas a tabela pessoa, carro, login, etc, e não estou conseguindo fazer o relacionamento entre elas, eu preciso que todas elas herdem o idpessoa, e como eu faria o select dessas tabelas. seria assim

String busca = "select * from `portaria`.`pessoa`, `carro` where idpessoa =' 1';";

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(busca);


ou 

String busca = "select * from `portaria`.`pessoa` where idpessoa =' 1';";
String busca1 = "select * from `portaria`.`carro` where idpessoa =' 1';";

Statement st = con.createStatement();
Statement st1 = con.createStatement();

ResultSet rs = st.executeQuery(busca);
ResultSet rs1 = st1.executeQuery(busca1);
ViniGodoy

Ao postar tópicos, por favor, NÃO USE LETRAS MAIÚSCULAS NO TÍTULO.

wagnerbianchi

Pessoal,

Primeiro espero que estejam todos bem.

Em relação às criação de chaves estrangeiras para relacionar tabelas no MySQL, basta que se adicione o ENGINE = InnoDB ao comando que cria as tabelas de um banco de dados para versões do MySQL anteriores à 5.5.

mysql> create table test.foo_0 (a int) engine=innodb;
Query OK, 0 rows affected (0.01 sec)

mysql> show create table test.foo_0;
+-------+------------------------------------------------------------------------------------------+
| Table | Create Table                                                                             |
+-------+------------------------------------------------------------------------------------------+
| foo_0 | CREATE TABLE `foo_0` (
  `a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Caso você não queira adicionar ENGINE = InnoDB na criação de suas tabelas, basta alterar o arquivo de configuração do MySQL e reiniciá-lo no sequência para que as alterações tenham efeito:

[mysqld]
default-storage-engine=innodb

Era necessário adicionar a declaração ENGINE, pois, o Storage Engine padrão de versões do MySQL anteriores à 5.5 era o MyISAM, motor este que não tem suporte à integridade referencial. Se você estiver utilizando a versão 5.5 do MySQL, o Storage Engine padrão passou a ser o InnoDB, que suporta integridade referencial, transações e muito mais e então, você não precisa declarar mais nada, basta somente criar a tabela.

mysql> create table test.foo_1 (a int, primary key(a));
Query OK, 0 rows affected (0.64 sec)

mysql> create table test.foo_2 (a int, primary key(a));
Query OK, 0 rows affected (0.05 sec)

mysql> alter table test.foo_2 add foreign key (a) references foo_1(a);
Query OK, 0 rows affected (0.64 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select constraint_name, table_name, constraint_type 
    -> from information_schema.table_constraints 
    -> where table_name in ('foo_1','foo_2');
+-----------------+------------+-----------------+
| constraint_name | table_name | constraint_type |
+-----------------+------------+-----------------+
| PRIMARY         | foo_1      | PRIMARY KEY     |
| PRIMARY         | foo_2      | PRIMARY KEY     |
| foo_2_ibfk_1    | foo_2      | FOREIGN KEY     |
+-----------------+------------+-----------------+
3 rows in set (0.00 sec)

Qualquer dúvida, continue o post, abração!

Criado 26 de novembro de 2011
Ultima resposta 28 de nov. de 2011
Respostas 6
Participantes 5