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

Dúvida no Ex. 4 da Aula 1 - Consultando os dados

Olá, estou recebendo a seguinte mensagem no terminal: Meu S.O linux mint

create table compras (id int auto_increment primary key, valor double, data date, recebido bolean, observacoes varchar(255);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bolean, observacoes varchar(255)' at line 1
create table compras (
    id int_auto_increment primary key,
    valor double,
    data date,
    recebido boolean,
    observacoes varchar(255);
3 respostas

Oi Roberto, tudo bem?

Na linha:

 id int_auto_increment primary key,

o int deve ficar separado do auto_increment

 id int auto_increment primary key,

e no final, você deve fechar o parêntese que está relacionado a tabela. no lugar de:

 observacoes varchar(255);

deve ser:

     observacoes varchar(255) );

O resultado final:

create table compras (
    id int auto_increment primary key,
    valor double,
    data date,
    recebido boolean,
    observacoes varchar(255)
);

Tenta e vê se funciona?

Abraço!

Eu já resolvi o problema eu li a documentação do mysql e onde esta int_auto_increment é int AUTO_INCREMENT, tentei em minuscula e dava erro. Mas tenho outro problema que apareceu quando faço a importação do cap2.sql ele gera outro erro: mysql -u root -p controle_compras < cap2.sql

ERROR 1146 (42S02) at line 1: Table 'controle_compras.COMPRAS' doesn't exist e quando entro no BDados e dou o comando

SHOW TABLES;

mysql> SHOW TABLES;
+----------------------------+
| Tables_in_controle_compras |
+----------------------------+
| compras                    |
+----------------------------+
1 row in set (0.00 sec)

A tabela existe. Há outra forma de importar dentro do mysql.

solução!

Olá Roberto! Veja bem, o primeiro erro que você citou era causado pelos dois problemas que o Lucas disse. Em questão de comando do MySQL não faz diferença por AUTO_INCREMENT (maiúsculo) ou auto_increment (minúsculo). O problema foi que você escreveu: int_auto_increment.

Quanto ao seu segundo erro, o que está acontecendo é que o MySQL para Databases e Tabelas ele é Case Sensitivity, ou seja ele leva em consideração as maiúsculas e as minúsculas, logo um database chamado Produto é diferente de produto, da mesma forma com as tabelas. Se você perceber no exercício anterior foi pedido a você que criasse uma tabela com o nome COMPRAS, no entanto, pude reparar que você criou com o nome compras. O arquivo disponibilizado no exercício está escrito para importar para a tabela COMPRAS, por essa tabela não existir ele não consegue importar e informa o seguinte erro: Table 'controle_compras.COMPRAS' doesn't exist (A tabela COMPRAS não existe).

Repare um trecho do arquivo cap2.sql:

insert into COMPRAS (valor, data, observacoes, recebido) ...

Ele está inserindo em COMPRAS. Como eu disse, o MySQL para tabelas é Case Sensitivity, logo sua tabela compras não é a mesma que COMPRAS.

Enfim, espero ter ajudado! Bons Estudos!