Ir para conteúdo
Fórum Script Brasil
  • 0

codigo sql..explicacao


The arlindo

Pergunta

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

  • 0
... queria saber p que serve o Type InnoDB Default Character Set latin1 Collate latin1_general_c

Type = 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

  • 0
...quando crio essas tabelas

a 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 post

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;
Esta ligação
Foreign 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

  • 0

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

  • 0

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

  • 0

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

  • 0

Oi, 'The arlindo'!

Veja como você declarou na tabela endereco

idmun TINYINT( 3 ) UNSIGNED NOT NULL ,
e na tabela cidades
id mediumint(8) Unsigned Not Null auto_increment,
Assim este relacionamento
FOREIGN 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

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...