Tenho uma base de dados com numeros de telefones e queria criar um mecanismo para actualiza-la. So que gostaria de criar algumas regras.
Gostaria de criar uma query que antes de fazer o insert ela verifica se aquilo que eu quero acrescentar ja existe. se ja existir ele nao permite que eu acrescente.
nesta mesma query, gostaria que os dados a serem introduzidos venham de strings da minha app.
Por exemplo para query com select de dados vindos da minha aplicação eu coloco assim :
selectcampo1fromtablewherecampo2=?
gostaria de ter uma query para fazer o insert com esta condição
Primeiramente você deve incluir um UNIQUE INDEX no seu banco de dados, o que vai impedir de que você tenha 2 registros iguais.
Depois, que mecanismo de persistência você está utilizando? Se for o JDBC, você pode usar o prepared statement para rodar sua Query.
L
LuisClaudio
Ola,
POr exemplo eu posso ter na minha lista telefonica dois numeros de telefone da mesma direcção . o UNIQUE INDEX funciona para um campoespecifico ou para todos os campos de uma tabela ?
Sim estou a usar o JDBC e a minha base de dados é DB2 do iseries (as/400)
Voce sabe como posso construir a query para fazer insert a base de dados com valores vindos da minha app ?
Eu normalmente uso o prepared statement assim :
PreparedStatement prepared_statement = connection.prepareStatement(sql_query); prepared_statement.setString(1, campoDeTexto.getText()); // para valor vindo de um campo de texto.
Gostaria de saber se uso o mesmo pricipio e saber como posso construir a query para inserir dados ao envez de consultar
M
maul
Um unique index funciona para um campo ou para um conjunto de campos da tabela. Se vc trabalhar com um unique index, o DB2 irá gerar um erro ao tentar inserir um valor duplicado para esse unique index. Dessa forma, quem faz a verificação de duplicidade é o banco, e não a app. Assim vc garante a regra, que não precisa ser replicada para todas as classes.
Não lembro direito, mas axo q vc pode utilizar um statement apenas para fazer o insert…
(faz tempo q nao uso jdbc)
flw.
L
LuisClaudio
Voce sabe como faço para configurar unique index em todos os campos de uma tabela em db2(AS/400)?
Ou seja nao pode haver um registo que tenha os 5 campos com os mesmos dados , o 1º o 2º o 3º ate ao 4º podem ser iguais mas ele nao deve permitir que dois registos tenham os 5 campos iguais
M
maul
Parece que esse conjunto de campos pode ser considerado a chave primária da tabela. Caso vc não tenha uma chave primária, ou tenha uma mal-definida, vc pode alterar a tabela utilizando esse conjunto como chave primária. Se vc já tiver uma definida, então utilize o unique index.
A chave primária costuma ser clusterizada, melhorando consultas feitas utilizando os campos que a compoem.
Dah uma olhada nesse link, lá tem explicação sobre ambas.