I have two tables:
table ficha_atendimento int id string cidadaos_cns table cidadaos int id string cns
I need do create a column int cidadaos_id
on table ficha_atendimento_cidadao
and I like to fill it with the id from cidadaos table, like it:
insert into ficha_atendimento set cidadao_id = select id from cidadaos where cidadaos.cns = ficha_atendimento.cns
But it’s not works… Any help?
Advertisement
Answer
You need to do two separate operations to achieve that. Firstly, add the cidadao_id
column to your table. Then, UPDATE
its values from the cidados
table:
ALTER TABLE ficha_atendimento ADD COLUMN cidadao_id INT NOT NULL; UPDATE ficha_atendimento f JOIN cidadaos c ON c.cns = f.cns SET f.cidadao_id = c.id
You may also want to add a FOREIGN KEY
on the cidadao_id
value:
ALTER TABLE ficha_atendimento ADD FOREIGN KEY (cidadao_id) REFERENCES cidadaos(id)