Banco de Dados MySQL

Eu estava tentando alterar uma tabela para que uma coluna fique não nulo.

A tabela esta assim:

CREATE TABLE pessoas(
id INT NOT NULL auto_increment,
nome VARCHAR(20) NOT NULL,
nascimento DATE,
sexo ENUM (‘M’,‘F’)
peso DECIMAL(5,2),
altura DECIMAL(3,2),
nacionalidade VARCHAR(20) DEFAULT ‘Brasil’,
PRIMARY KEY(id)
)DEFAULT CHARSET = utf8mb4;

ALTER TABLE pessoas ADD COLUMN profissao VARCHAR(10)

        Porém o código que não funciona é esse:

ALTER TABLE pessoas MODIFY COLUMN profissao VARCHAR(20) NOT NULL DEFAULT ’ ';

ERRO: Error Code: 1138. Invalid use of NULL value

Como posso consertar esse erro ou modoficar a coluna para not null?

Atualize os registros já existentes depois modifique a coluna!

UPDATE pessoas SET profissao = '' WHERE profissao IS NULL;

ALTER TABLE pessoas MODIFY COLUMN profissao VARCHAR(20) NOT NULL DEFAULT '';

Eu fiz isso e o erro que apareceu foi:
Error Code: 1175 You are using safe update mode and you tried to update table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences - SQL Editor and reconnect.

Tradução:
Código de erro: você está usando o modo de atualização seguro e tentou atualizar a tabela sem um WHERE que usa uma coluna KEY. Para desativar o modo de segurança, alterne a opção em Preferências - Editor SQL e reconecte

Este erro acontece porquê o safe update do MySQL está ativo, ele obriga que comandos SQL de modificação em registros , por exemplo o UPDATE, sejam feitos obrigatoriamente utilizando a PK como cláusula, o que não é o seu caso!

Tem duas possibilidades de solução, uma é você desabilitar o safe update para poder executar o comando da forma como mencionei na resposta anterior, ou alterar a cláusula para utilizar a PK da tabela.

Desabilitar o safe update: (É necessário reiniciar a conexão)

SET SQL_SAFE_UPDATES = 0;

Utilizando a PK da tabela:

UPDATE pessoas SET profissao = '' WHERE sua_coluna_pk > 0; -- Imaginando que sua PK seja uma coluna de valor inteiro e incremental

Muito obrigada, funcionou muito bem.