Erro no modify [RESOLVIDO]

1. Erro no modify [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 24/12/2021 - 03:16h

Pessoas .. possuo o campo 'profissao varchar (10)', estou tentando modificar e recebo um erro, o que está errado ??

mysql> alter table pessoas modify column profissao varchar(20) default '' not null;
ERROR 1138 (22004): Invalid use of NULL value
mysql>



  


2. MELHOR RESPOSTA

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 24/12/2021 - 17:43h


Manda o esquema da tabela aê, eu não consegui reproduzir esse código de erro. O melhor que eu consegui foi
create table pol (
id int,
nome varchar(2));

tentando alterar
alter table pol modify column nome varchar(1) default '' not null;
ERROR 1136 (21S01): Column count doesn't match value count at row 1

para esse erro eu corrijo colocando valor nos campos c valor null e depois mudando a definição
update pol set nome='';
alter table pol modify column nome varchar(1) default '' not null;

mudar a definição da tabela quando já tem dados populados às vezes pode dar problema. Manda o esquema da tabela p gente ver.

3. Re: Erro no modify [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 24/12/2021 - 10:25h


Mauriciodez escreveu:

Pessoas .. possuo o campo 'profissao varchar (10)', estou tentando modificar e recebo um erro, o que está errado ??

mysql> alter table pessoas modify column profissao varchar(20) default '' not null;
ERROR 1138 (22004): Invalid use of NULL value
mysql>


Já existem registros nessa tabela? Se tiver, algum deles está preenchido com null no campo profissão?


4. Re: Erro no modify [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 24/12/2021 - 14:40h


leandropscardua escreveu:
Já existem registros nessa tabela? Se tiver, algum deles está preenchido com null no campo profissão?


a tabela já está populada, mas esse campo eu inseri depois de popular a tabela ( é um tutorial e a intenção é justamente modificar o campo ).

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




5. Re: Erro no modify [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 24/12/2021 - 19:40h



fiz a correção em uma tabela não populada e realmente funcionou tranquilamente. mas se eu precisar inserir e editar um campo em um BD com trocentos registros ... vai dar ruim ??? no tutorial a pessoas da o comando de modify com a tabela populada e vai de boa .. o tuto é de 2016, será que tem a ver com a versão do mysql e/ou fato dela estar fazendo isso no windows ??



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




6. Re: Erro no modify [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 25/12/2021 - 02:20h

consegui aqui ... segue
SET SQL_SAFE_UPDATES = 0;
UPDATE pessoas SET profissao='';
ALTER TABLE pessoas MODIFY profissao varchar(20) not null;
SET SQL_SAFE_UPDATES = 1;


fiz certo ?

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




7. Re: Erro no modify [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 25/12/2021 - 10:48h


Mauriciodez escreveu:

Pessoas .. possuo o campo 'profissao varchar (10)', estou tentando modificar e recebo um erro, o que está errado ??

mysql> alter table pessoas modify column profissao varchar(20) default '' not null;
ERROR 1138 (22004): Invalid use of NULL value
mysql>

Pelo os exemplos aqui:
https://www.techonthenet.com/mysql/tables/alter_table.php
Não existe a palavra chave column depois do modify.
No caso seria apenas:
alter table pessoas modify profissao varchar(20) default '' not null


8. Re: Erro no modify [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 25/12/2021 - 19:46h


SamL escreveu:
Não existe a palavra chave column depois do modify.



column existe velho, ele pode ser omitida, no caso ela é opcional !!!

abçs !!!


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




9. Re: Erro no modify [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 26/12/2021 - 09:37h


Mauriciodez escreveu:



fiz a correção em uma tabela não populada e realmente funcionou tranquilamente. mas se eu precisar inserir e editar um campo em um BD com trocentos registros ... vai dar ruim ??? no tutorial a pessoas da o comando de modify com a tabela populada e vai de boa .. o tuto é de 2016, será que tem a ver com a versão do mysql e/ou fato dela estar fazendo isso no windows ??



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------


O sql tem uma versão padrão e tem as "variantes" de cada banco, mas a versão padrão normalmente todo banco aceita independente de sistema operacional. Em relação à tabela populada sempre é um problema. Qdo vc vai aumentar o tamanho não é tanto, mas se vc for diminuir pode dar muita dor de cabeça. Mas esse update sem where é uma das operações mais perigosas e todo cuidado é pouco!










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts