Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eddy Goulart

tipo diferente de DataBase

Recommended Posts

Saudações, bem estou com um problema, creio eu que seja o tipo de banco de dados, (MyIsan, innoDB) nao entendo mtu sobre isso mais vamos lá.

Terminei um projeto por agora, na minha maquina ele funciona perfeitamente, mas logo que botei para o servidor comecou meus problemas, na verdade é na minha maquina que está o problema, no meu BD, pois quando vou registrar aalguma linha que tenha uma coluna que possua uma foreken key, o BD da minha maquina deixa registrar normalmente enquanto na web nao deixa(que é o certo né).

 

Entao como fazer o BD da minha maquina ficar do msm jeito que na web? nao deixando registrar algum registro se o valor da forenkey nao existir.

 

Agradeco desde ja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eddy, saudações! ^^

 

O problema parece ser esse mesmo que você citou,

 

O engine MyISAM não suporta chaves estrangeiras, e o InnoDB sim.

 

O servidor da sua maquina deve estar com as tabelas em MyISAM.

 

Em seu servidor, execute o comando SHOW ENGINES e confirme se o seu servidor está com o InnoDB suportado.

 

Se sim, execute o comando nas suas tabela:

 

ALTER TABLE tabela ENGINE = InnoDB;

Depois é só criar as restrições nas tabelas.

 

ALTER TABLE tabela1 ADD CONSTRAINT FOREIGN KEY nome_do_indice (nome_da_coluna) REFERENCES tabela2 (nome_da_coluna);

Mais detalhes:

http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou desenvolvendo um sistema para web, o desempenho vai piorar se eu botar innoDB?

é muita a diferença?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao consigo criar tabelas com InnoBD, nem alterar, diz que alterou com sucesso mais nao alterou.. quais passos devo seguir? estou usando o xamp, deu um show engine:

Textos completos
Engine 	Support 	Comment
MyISAM 	DEFAULT 	Default engine as of MySQL 3.23 with great perform...
MEMORY 	YES 	Hash based, stored in memory, useful for temporary...
InnoDB 	DISABLED 	Supports transactions, row-level locking, and fore...
BerkeleyDB 	NO 	Supports transactions and page-level locking
BLACKHOLE 	YES 	/dev/null storage engine (anything you write to it...
EXAMPLE 	NO 	Example storage engine
ARCHIVE 	YES 	Archive storage engine
CSV 	NO 	CSV storage engine
ndbcluster 	NO 	Clustered, fault-tolerant, memory-based tables
FEDERATED 	YES 	Federated MySQL storage engine
MRG_MYISAM 	YES 	Collection of identical MyISAM tables
ISAM 	NO 	Obsolete storage engine



Compartilhar este post


Link para o post
Compartilhar em outros sites

Eddy,

 

Pelo resultado do comando dá ver que o InnoDB está desativado. Por isso não está conseguindo alterar.

 

Você está em Windows né ? Vá até o diretório raiz do xampp, deve ser algo como C:/Arquivos de Programas/Xampp

 

Procure um arquivo chamado my.cnf, pode ser my.ini também, não tenho certeza como é no windows.

 

Procure a linha:

# skip-innodb
Descomente a linha e reenicie o banco de dados.

 

Isso deve resolver.

 

Abraços..

 

Érico

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.