(JAVA)Inserir valor na tabela SQL em campos específicos

Boa Galera…estou com uma dúvida…
Posso inserir um insert assim em persistência java?

Strin sql= “insert into Empresa (contato) value(?) where email=?”

Pois preciso cadastrar esse contato em algumas empresas após algumas ações
e não queria criar outra tabela só para isso…
Desde já agradeço!!!

Vc não coloca where na sintaxe do insert.

Seria apenas:

String sql = "INSERT INTO Empresa (contato) VALUES (?)"

Mas qual o problema? Está dando algum erro?

não…erro não…
eu queria inserir apenas uma coluna da tabela
ou seja…eu tenho uma tabela com 4 colunas
e quero inserir apenas em algumas colunas com
certas empresas
tipo:
ID EMPRESA CNPJ CONTATO
1 xxxxx xxxxx xxxxxx
2 xxxxx xxxxx (021)xxxxx

não sei se tem outro jeito sql…
não saco muito de sql…manjo o básico sabe

Como é a estrutura da tabela Empresa?

Table: public.Empresa

– DROP TABLE public.Empresa;

CREATE TABLE IF NOT EXISTS public.Empresa
(
id integer NOT NULL,
empresa character varying(255) COLLATE pg_catalog.“default” NOT NULL,
cnpj character varying(255) COLLATE pg_catalog.“default” NOT NULL,
contato character varying(255) COLLATE pg_catalog.“default”,
CONSTRAINT Empresa_pkey PRIMARY KEY (id)
)

TABLESPACE pg_default;

ALTER TABLE public.Empresa
OWNER to xxxxxxxx;

eu não quero criar outra tabela só para isso sabe…
o lance é algumas empresas receberem contatos diferentes
dependendo do que seja feito na view sabe

O problema é que 3 das 4 colunas são NOT NULL. Isso já vai ser um problema para o que vc quer fazer, sem falar que a primary key da tabela (ID) tem que ser preenchida, não é recomendado ter registros numa tabela sem um identificador.

como posso fazer para conseguir inserir dados em colunas específicas?
se eu tirar o NOT NULL e PRIMARY KEY?

isso posso tratar na aplicação sem problema…oque não quero é
criar outra tabela…kkkkkkkkk

Pode tirar o NOT NULL, mas não recomendo tirar o PRIMARY KEY, uma vez que ela serve para identificar o registro e fazer relacionamentos com outra tabela. Mas tah muito estranho isso que vc está querendo fazer. Pq vc quer gravar apenas na coluna contato? A informação nessa coluna não tera relação com mais nada na aplicação ou com qualquer outra tabela do banco?

Faz um UPDATE do registro da empresa setando esse e-mail.

Mas as empresas só tem um email para contato?

Eu criaria uma tabela de CONTATOS e relacionaria com a tabela EMPRESAS

1 curtida

sim…cada empresa tem seu email e contato…
isso…boa… acho que posso fazer um update sim…
e quando contato chegar null posso inserir o valor nele
então , não queria criar uma tabela só para isso.

o único problema disso é o tempo de execução?

estou em dúvida mesmo…
pois cada email poderá ter vários contatos
como poderei inserir e excluir contato de
email específico?

Acho que você precisa estudar normalização de banco.
Já te foi dado a dica de criar uma tabela e fazer o relacionamento.
Não há motivo em insistir em criar apenas uma coluna na tabela existente.

farei isso brother…não tem outro jeito

vlw galera!!!