Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Estou desenvolvendo um sistema para web, o desempenho vai piorar se eu botar innoDB?
é muita a diferença?
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
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:
Isso deve resolver.
Abraços..
Érico
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