Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ragazzo04

[Resolvido] Insert MySql

Mensagens Recomendadas

ragazzo04

Boa tarde pessoal

Gostava que me pudessem esclarecer uma dúvida num comando MySql.

Eu tenho a seguinte tabela Operação:

idOperacao (INT)

Operacao_Data_Inicio (DATE)

Operacao_Data_Prevista (DATE)

Operacao_Data_Final (DATE)

Operacao_Observacao (VARCHAR200)

Estado_idEstado (INT)

Utilizador_idUtilizador (INT)

Local_idLocal (INT)

Eu consigo inserir nesta tabela da seguinte maneira:

INSERT INTO `gabineteinformatica`.`operacao` (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) VALUES ('2013-02-12', '2013-02-15', '2013-03-20', 'TESFTE', '2', '1', '8');

Sendo o 2 o 1 e o 8 o valor dos id’s em outras tabelas. Mas eu necessitava de introduzir esses valores através do nome correspondente a esse ID na respectiva tabela.

Eu sei que se fosse apenas só um poderia fazer assim:

INSERT INTO local (`Local_Nome`, `Tipo_Local_idTipo_Local`) select '1', idTipo_Local from tipo_local where Tipo_Local_Nome = 'Gabinete';

Eu tentei:

INSERT INTO operacao (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) select '2013-03-18', '2013-03-19', '2013-03-19', 'Teste192', idEstado from estado where Estado_Nome = 'Terminado' , idUtilizador from utilizador where Utilizador_Numero = '1008356', idLocal from local where Local_Nome = 'Terminado';

Mas dá-me o seguinte erro:

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 ' idUtilizador from utilizador where Utilizador_Numero = '1008356', idLocal from ' at line 1 0.000 sec

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ragazzo04

Já consegui achar uma solução, aqui fica para se alguém necessitar:

INSERT INTO operacao (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) values ("2013-03-18", "2013-03-19", "2013-03-19", "Teste192", (select idEstado from estado where Estado_Nome = 'Terminado'), (select idUtilizador from utilizador where Utilizador_Numero = '1008356'), (select idLocal from local where Local_Nome = 'Redes'));

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.