• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Romanovs

Ajuda- SQL

5 mensagens neste tópico

Estou para aqui um bocado confuso e espero que me ajude :biggrin:

Ao criar uma tabela no PHPmyAdmin e dá-me erro assim na linha de comando:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'not null,

titulo not null,

id_n int not null auto_increment,

A linha que escrevi é a seguinte:

CREATE TABLE noticias(

DATA varchar( 6 ) NOT NULL ,
texto NOT NULL ,
titulo NOT NULL ,
id_n int NOT NULL AUTO_INCREMENT ,
FOREIGN KEY ( nome ) REFERENCES membro( nome ) ,
PRIMARY KEY ( id_n ) 
) ;

P.S.- Quero relacionar o campo nome com um igual que tenho na tabela membro penso que seja como meti

P.P.S.- O varchar influencia no tamanho dos campos? desculpem a noobice :wallbash:

Por agora é tudo  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não definiste o tipo de dados dos campos texto e titulo, e no foreign key estás só a definir a constrain, onde está o campo?

Quanto ao varchar, não sei o que queres dizer com influenciar o tamanho dos campos, mas a diferença entre um char e um varchar é que o espaço ocupado por um varchar é somente o espaço necessário para os dados enquanto no char é sempre o tamanho definido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ficaria assim então não?

CREATE TABLE noticias(
membro varchar(24) NOT NULL,
dia varchar( 24 ) NOT NULL ,
texto varchar(24) NOT NULL ,
titulo varchar(24) NOT NULL ,
id_n int NOT NULL AUTO_INCREMENT ,
FOREIGN KEY ( nome ) REFERENCES membro( nome ) ,
PRIMARY KEY ( id_n ) 
) ;

Expliquem-me melhor essa parte do que é aquilo dentro dos () tanto no char como no varchar se não chatear muito :P.

"Explica-me como se fosse uma criança de quatro anos."

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

dentro dos () defines o numero de caracteres máximo do campo, e novamente a diferença entre os dois tipos é que o char guarda o espaço desse numero de caracteres e o varchar só vai guardar o numero efectivo de caracteres que lá colocares.

Mas para que não penses que são só vantagens com o varchar, ele requer mais processamento para gerir, especialmente se a BD for grande.

E continua a faltar o campo nome. O que queres deve ser isto:

CREATE TABLE noticias(
membro varchar(24) NOT NULL,
dia varchar( 24 ) NOT NULL ,
texto varchar(24) NOT NULL ,
titulo varchar(24) NOT NULL ,
id_n int NOT NULL AUTO_INCREMENT ,
nome char(24) NOT NULL,
FOREIGN KEY ( nome ) REFERENCES membro( nome ) ,
PRIMARY KEY ( id_n ) 
) ;

supondo que o campo nome na outra tabela é do tipo char

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Perfeito é mesmo isso.

Obrigado fiquei a perceber perfeitamente isso dos char e varchar

podem fechar  :D:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora