Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Tabela ou dado já existente

Ao criar as tabelas no MySQL Workbench, se uma das tabelas já tiver sido criada anteriormente, ao rodar o código para criar novas tabelas, o programa gera erro, não criando novas tabelas.

Quando isso ocorre, sempre é necessário apagar todas as tabelas e criar tudo de novo?

Fico com essa mesma dúvida para os dados, pois ao popular uma das tabelas que já continha um dado de um cliente, ao popular essa tabela com novos dados, que incluía o dado que já estava na tabela, gerou erro. Tive que apagar tudo e começar do zero, não consegui usar o comando para apagar os dados da tabela, pois aparecia o seguinte erro:

14:31:08 DELETE FROM proprietarios Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec

2 respostas
solução!

Olá Vivian, tudo bem com você?

Existem maneiras de contornar esses problemas sem precisar apagar tudo e começar do zero.

Para a criação de tabelas:

Você pode usar a cláusula IF NOT EXISTS. Isso evita que o MySQL tente criar uma tabela que já existe, evitando assim o erro. Por exemplo:

CREATE TABLE IF NOT EXISTS minha_tabela (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL
);

Para apagar dados:

O erro You are using safe update mode que apareceu para você ocorre porque o MySQL Workbench está em "safe update mode", que impede a execução de comandos DELETE ou UPDATE sem uma cláusula WHERE. A cláusula WHERE é importante no ato da deleção porque evita alterações acidentais em todas as linhas da tabela, protegendo os dados.

Para resolver isso, uma alternativa é desativar temporariamente o modo seguro. Exemplo:

-- Desativar temporariamente o modo seguro
SET SQL_SAFE_UPDATES = 0;

-- Apagar todos os dados da tabela 'proprietarios'
DELETE FROM proprietarios;

-- Reativar o modo seguro
SET SQL_SAFE_UPDATES = 1;

Mas, recomendo que você sempre utilize uma cláusula WHERE para apagar os dados. Em um ambiente corporativo, usar DELETE sem WHERE pode ser um problemão, uma vez que apagaria todos os dados da empresa hehehe

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Excelente dica. Muito obrigado.