Jump to content

[Resolvido] Insert MySql


ragazzo04

Recommended Posts

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
Link to comment
Share on other sites

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
Link to comment
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.