Jump to content
ragazzo04

[Resolvido] Insert MySql

Recommended Posts

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

Edited by brunoais
geshi

Share this post


Link to post
Share on other 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'));

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.