The arlindo Postado Outubro 6, 2009 Denunciar Share Postado Outubro 6, 2009 amigos tenho o seguinte codigo sql no site que estou dando uma manutenção..Create Table estados( id tinyint(3) Unsigned Not Null auto_increment, sigla char(2) Not Null, nome varchar(50) Not Null, Primary Key (id)) Type InnoDB Default Character Set latin1 Collate latin1_general_ci;Create Table cidades( id mediumint(8) Unsigned Not Null auto_increment, id_uf tinyint(3) Unsigned Not Null, nome varchar(100) Not Null, Primary Key (id), Foreign Key (id_uf) References estados(id) On Delete Restrict On Update Cascade)Type InnoDB Default Character Set latin1 Collate latin1_general_ci;queria saber p que serve o Type InnoDB Default Character Set latin1 Collate latin1_general_c Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 6, 2009 Denunciar Share Postado Outubro 6, 2009 ... queria saber p que serve o Type InnoDB Default Character Set latin1 Collate latin1_general_cType = palavra chave usada para controlar o engine utilizado pelo DBA quando da criação das tabelas.A partir da versão 5 passou-se a utilizar a palavra chave ENGINE no lugar de TYPE.Innodb = Engine desenvolvido originalmente pela oracle e disponibilizado no MySQL a partir da versão 3.23, se não me engano. Seu objetivo é prover uma estrutura que aceite controle de transação. A partir da versão 5 passou a aceitar controle referencial, também.Default Character Set = Palavra chave para indicar o padrão de caracteres usado para esta tabela.latin1 Collate latin1_general_c = Padrão de caracteres usado para esta tabela. (Ver manual do MySQL para saber mais). Link para o comentário Compartilhar em outros sites More sharing options...
0 The arlindo Postado Outubro 6, 2009 Autor Denunciar Share Postado Outubro 6, 2009 (editado) beleza.. ate ai ok..quando crio essas tabelasa tabela cidades fica com um link puxando os id do estado ..como faco para fazer isso em todas minhas chaves estrangeiras? Editado Outubro 6, 2009 por The arlindo Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 6, 2009 Denunciar Share Postado Outubro 6, 2009 ...quando crio essas tabelasa tabela cidades fica com um link puxando os id do estado ..como faco para fazer isso em todas minhas chaves estrangeiras?Veja o que você passou no primeiro postCreate Table cidades( id mediumint(8) Unsigned Not Null auto_increment, id_uf tinyint(3) Unsigned Not Null, nome varchar(100) Not Null, Primary Key (id), Foreign Key (id_uf) References estados(id) On Delete Restrict On Update Cascade )Type InnoDB Default Character Set latin1 Collate latin1_general_ci; Esta ligaçãoForeign Key (id_uf) References estados(id) On Delete Restrict On Update CascadeÉ a que determina a ligação referencial da chave estrangeira Foreign Key (id_uf) com a tabela/atributo estados(id) Link para o comentário Compartilhar em outros sites More sharing options...
0 The arlindo Postado Outubro 6, 2009 Autor Denunciar Share Postado Outubro 6, 2009 Estou tentando criar mas olha o erro que da:#1005 - Can't create table '.\vendas\endereco.frm' (errno: 150) estrutura da minha nova tabela, tentando fazer referencia a tabela cidades: CREATE TABLE endereco( cep MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT , idmun TINYINT( 3 ) UNSIGNED NOT NULL , nome VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( cep ) , FOREIGN KEY ( idmun ) REFERENCES cidades( id ) ON DELETE RESTRICT ON UPDATE CASCADE ) TYPE INNODB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 6, 2009 Denunciar Share Postado Outubro 6, 2009 Este erro ocorre porque você declarou a estrutura de um campo diferente da estrutura do outro na outra tabela.Mostre a estrutura da tabela cidades Link para o comentário Compartilhar em outros sites More sharing options...
0 The arlindo Postado Outubro 7, 2009 Autor Denunciar Share Postado Outubro 7, 2009 ai esta:Create Table cidades( id mediumint(8) Unsigned Not Null auto_increment, id_uf tinyint(3) Unsigned Not Null, nome varchar(100) Not Null, Primary Key (id), Foreign Key (id_uf) References estados(id) On Delete Restrict On Update Cascade )Type InnoDB Default Character Set latin1 Collate latin1_general_ci; Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 7, 2009 Denunciar Share Postado Outubro 7, 2009 Oi, 'The arlindo'!Veja como você declarou na tabela enderecoidmun TINYINT( 3 ) UNSIGNED NOT NULL , e na tabela cidades id mediumint(8) Unsigned Not Null auto_increment, Assim este relacionamentoFOREIGN KEY ( idmun ) REFERENCES cidades( id ) ON DELETE RESTRICT ON UPDATE CASCADE Não vai funcionar. Os campos precisam ser do mesmo tipo e tamanho. Modifique a linha na tabela endereco para que fique assim:idmun mediumint(8) Unsigned Not Null default 0 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
The arlindo
amigos tenho o seguinte codigo sql no site que estou dando uma manutenção..
Create Table estados(
id tinyint(3) Unsigned Not Null auto_increment,
sigla char(2) Not Null,
nome varchar(50) Not Null,
Primary Key (id)
) Type InnoDB Default Character Set latin1 Collate latin1_general_ci;
Create Table cidades(
id mediumint(8) Unsigned Not Null auto_increment,
id_uf tinyint(3) Unsigned Not Null,
nome varchar(100) Not Null,
Primary Key (id),
Foreign Key (id_uf)
References estados(id)
On Delete Restrict On Update Cascade
)Type InnoDB Default Character Set latin1 Collate latin1_general_ci;
queria saber p que serve o Type InnoDB Default Character Set latin1 Collate latin1_general_c
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados