S2DZ | Simply…

Janeiro 29, 2010

MySql Error Number 1005 Can’t create Table… (ao criar uma chave estrangeira)

Arquivado em: Base de Dados — s2dz @ 2:05 pm

Depois demysql criar a minha BD no MySQL, ao criar os relacionamentos entre as tabelas. O MySQL fartava-se de dar um erro do tipo:

Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150);  sempre que tentasse criar uma chave estrangeira. O mais chato é que não dizia onde estava o erro e o porque do tal erro. Depois de muitas pesquisas, verifiquei ser um problema que até mesmos no fórum oficial do MySQL não havia uma explicação técnica exacta sobre o erro. Por isso vai a seguir uma lista onde se coloca uma série de possíveis causas para esse problema, baseadas em relatos de pessoas que tiveram mesmo tipo de erro.

Dicas:

-Pode executar o comando “SHOW INNODB STATUS” imediatamente a seguir a recepção do erro para mostrar informações de log detalhadas.

Possíveis causas:

1-O tipo ou tamanho (ou outra propriedade como signed/unsigned) dos campos a serem relacionados são diferentes. Por exemplo, se um deles é INT(10) o outro campo também deve ser INT(10). O tamanho do campo pode ser verificado com o comando SHOW CREATE TABLE porque o Query Browser em alguns casos mostra apenas INTEGER em campos INT(n).

2-Um dos campos a ser relacionado não tem um index e/ou não é uma chave primária. Se um dos campos na relação não for uma chave primária, devemos criar um index para esse campo.

3-O nome da chave primária a ser criada já existe. Verificar se o nome da chave estrageira é único na BD.

4-Uma das tabelas a ser relacionada é MyISAM. NOTA: Apenas as tabelas InnoDB permitem criar relacionamentos.

5-Foi especificado ON DELETE SET NULL, mas o campo foi definido para NOT NULL.

6-Devemos ter a certeza que as opções de Charset e Collate são as mesmas a nível das duas tabelas ou até mesmo a nível dos campos.

7-Temos um default value (por exemplo: default=0) no nosso campo da chave estrangeira.

8-Um dos campos na relação é parte de uma chave composta e por isso não possui um index próprio (individual). Ainda que o campo tenha um index individual como parte da combinação, devemos criar um index separado para somente esse campo a fim de ser usado num constraint.

9-Temos um erro de sintaxe na cláusula ALTER ou foi digitado de forma incorrecta o nome de um campo.

10-O nome da nossa chave estrangeira excedeu o tamanho limite de caracteres.

Esses são apenas algumas causas possíveis. Mas pelo menos com essa lista consegui resolver todos os meus problemas com a minha BD. Espero que também seja útil para mais pessoas.

Para outras informações consultar o manual oficial do MySQL: manual de referência do MySQL.

Agosto 29, 2009

Os 7 pecados do Windows 7

Arquivado em: Windows — s2dz @ 5:04 pm
windows 7 sins

windows 7 sins

A nova campanha da Free Software Foundation (FSF) tenta convencer os utilizadores de que a Microsoft é mesmo o Império do Mal.

A Free Software Foundation, organização fundada e dirigida por Richard Stallman criou o site windows 7 sins (os pecados do Windows 7). Logo na página inicial, diz-se que “o software proprietário em geral e o Microsoft Windows em particular prejudicam todos os utilizadores de computador”.

Vão mais longe ainda ao afirmar que o Windows 7 comete sete pecados capitais: envenenar a educação, invadir a privacidade, comportar-se como um monopólio, aprisionar o utilizador, abusar dos standards, obrigar à utilização de protecção contra cópia de conteúdo e ameaçar a segurança.

A Free Software Foundation diz que enviou cartas a 499 empresas da lista Fortune 500 – as maiores companhias dos Estados Unidos. A missiva diz que o Windows 7 pode comprometer a privacidade, a segurança e a liberdade das empresas. Em vez dele, a FSF convida as empresas a usar software livre. “Instalar o Windows 7 só vai deixar-vos mais presos e dependentes da Microsoft”, conclui a carta.

Vamos esperar pra ver até aonde isso vai chegar :-) .

fonte: Exame Informatica

Março 4, 2009

Gerar sha1sum no Windows 2000/XP/Vista

Arquivado em: Windows — s2dz @ 7:57 pm

Quando fazemos um download de um ficheiro .iso (imagem ISO) as vezes sem sabermos o ficheiro descarregado pode estar corrompido. Para termos a certeza de que a imagem descarregada esta em perfeitas condições, precisamos de um tipo de ferramenta (software) que verificar se  a imagem ISO descarregada é igual a imagem ISO do site FTP.

Por isso é fortemente recomendável verificar a integridade das imagens ISO após o download, para nos certificarmos de que o download foi bem sucedido.

Existem diversos algoritmos usados para gerar o checksum de uma imagem ISO dentre eles os mais usados são: md5(software md5sum) e o sha1(software sha1sum). Segundo relatos de alguns experts o sha1 apresenta menos fraquezas que o md5.

Pessoalmente já usei as duas ferramentas no windows e a mais complicada foi a sha1sum por isso resolvi postar sobre essa ferramenta.

Esse processo de veficação consiste basicamente em comparar os valores retornados pela ferramenta sha1sum com os valores publicados pelo
dono do ficheiro. Normalmente os valores oficiais do sha1sum chamam-se SHA1SUM e fica localizado no mesmo directório da imagem ISO no site FTP. A seguir um passo a passo de como gerar o sha1sum no MS windows 2000/XP/Vista. Neste exemplo a verificação foi feita no MS Windows Vista x64 com a imagem ISO do Fedora 10(Fedora-10-i386-DVD.iso) que pode ser obtida em http://fedoraproject.org/get-fedora.

1. As ferramentas acima descritas não existem de forma nativa no MS windows – ao contrário do Unix, Linux, e Unix-like operating systems :-D – Por isso primeiramente devemos descarregar a ferramenta sha1sum para o windows. O downloand pode ser feito em:

ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.exe (20k)

ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.exe.sig

ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.c (9k)

ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.c.sig

ftp://ebible.org/pub/sha1sum.zip

2. Após o download, guardar o ficheiro executável no mesmo directório da imagem ISO.
3. A seguir primir a tecla windows + a tecla R(abrir a janela do executar).
4. Na janela do executar digitar cmd(abrir a linha de comandos).

janela do executar

janela do executar

5. Na linha de comandos navegar até o directório da imagem ISO e digite sha1sum.exe nomeDaImagemISO.iso depois primir Enter.

sha1sum.exe

sha1sum.exe

Nota: Certifica-se que colocou espaço entre o sha1sum.exe e o nomeDaImagemISO.iso.
6. Comparar os valores do sha1sum gerados pelo sha1sum.exe e os valores sha1sum oficial do site do dono da imagem ISO.

Valor gerado pelo sha1sum sublinhado a vermelho

Valor gerado pelo sha1sum sublinhado a vermelho

Nota: A geração dos valores pelo sha1sum.exe pode levar algum tempo dependendo do tamanho da imagem ISO.

E Depois?

Se os dois valores forem iguais então a tua imagem ISO está perfeita. Podes gravá-la em um CD/DVD.
Caso contrário a tua imagem ISO por algum motivo foi corrompida. Deves repará-la ou fazer um novo download.

Valor Oficial do sha1sum do Fedora-10-i386-DVD.iso

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1

086fd570518ac58d3966c43c1b6d146e38919d8d *Fedora-10-i386-DVD.iso

—–BEGIN PGP SIGNATURE—–
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFJJZ73vyJvzE6/wnMRAqMKAJ9DqTnCfeh5Z9ZkLD8NCZmTveEM1QCglh2L
jn2Dxoks6CtgGtqW3m0LiyE=
=5dmW
—–END PGP SIGNATURE—–

Agosto 27, 2008

Maior Sub-árvore da Raíz

Arquivado em: Algoritmos, UCAN — s2dz @ 3:03 pm

Ao pessoal de técnicas, aí vai o algoritmo que recebe uma extrutura de árvore armazenada num vector e retorna a maior sub-arvore da raíz(em termos de profundidade)  expero que ajude. Descupem-me por não ter aparecido (bwe busy mesmo).

Testem o algoritmo pf e digam alguma coisa.

“Ñ existem coisas novas. Existem sim, coisas antigas feitas de forma diferente” :-)

Página Seguinte »

Blog em WordPress.com.