Insert em MySql

4 respostas
mysql
S

Olá pessoal sou novo aqui e preciso da ajuda de vocês.
Bem, tenho um insert de city para ser feito manualmente, e a mesma precisa de um state para persistir no banco de dados mas tem city que não possue state como fazer para inserir as cities
que só possuem states?

segue a baixo o script em MySql

tabela city{

version

date_created

longitude

last_updated

name

un_locode

ibge

state_id

latitude

}

INSERT INTO city (version, date_created, last_updated, name, un_locode, ibge, latitude, longitude, state_id) VALUES
(0, NOW(), NOW(), “Bridgetown”,“Bridgetown”,0,"","",

IF ((SELECT s.id FROM state s INNER JOIN country c WHERE c.id = s.country_id AND iso_codea2 =“BB” AND s.code =""),
(SELECT s.id FROM state s INNER JOIN country c WHERE c.id = s.country_id AND iso_codea2 =“BB” AND s.code =""), NOT INSERT)
);

4 Respostas

D

Você tem uma FK de state em city, tecnicamente, não deveria haver problemas.
Mas, porém, entretanto, todavia, você deve ter uma constraint que só permite a inserção de uma city que esteja associada a um state valido (diferente de null e existente na tabela state).

S

Sim… mas possuo mais de 53k de linhas de insert, como fazer caso não exista state ele pule para a próxima linha de insert e não insira a city que não possui state?
Ou seja existe city que não possui state, só quero que persista no banco as cities que tiverem state.

D

Repito, se você tem esta constraint, você não vai conseguir burlar. Teu modelo está errado e as tabelas também (considerando o que você disse, que algumas cidades não estão ligadas a um estado).

S

Então blz… valeu pelas dicas… abraço

Criado 23 de abril de 2018
Ultima resposta 23 de abr. de 2018
Respostas 4
Participantes 2