SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 31/07/2018, 02:31 PM   #1
DiegoR
Little Clucker
 
Join Date: Jul 2018
Posts: 6
Reputation: 4
Default Erros comuns MySQL

Estive olhando postagens no fórum/discord sobre o uso de MySQL no SA-MP e percebi que muitos programadores cometem erros ao utilizar a linguagem SQL e o plugin MySQL do BlueG, então resolvi fazer este tutorial com os erros mais comuns cometidos pelos membros tanto na linguagem SQL quando no uso do plugin.
Caso você saiba de alguma outra gafe cometida pelos membros e queira adicionar ao tópico, comente ou me mande MP que adiciono ao tópico.

Bom vamos lá:
  • Deletar toda tabela quando cria uma coluna errada

    Este é o erro mais comum pelo que percebi entre os membros do fórum, muitas vezes quando querem adicionar uma coluna ou alterar uma coluna, deletam toda tabela e a recriam novamente, além de ser trabalhoso você perde todos os dados da tabela, para isso utiliza a instrução ALTER TABLE, veja um exemplo:

    Para adicionar uma coluna na tabela utiliza-se a instrução:
    PHP Code:
    ALTER TABLE tabela ADD coluna TIPODEDADO 
    por exemplo:
    PHP Code:
    ALTER TABLE jogadores ADD dinheiro INT(11) DEFAULT '0' 
    Para excluir apenas uma coluna da tabela:
    PHP Code:
    ALTER TABLE tabela DROP COLUMN coluna
    exemplo:
    PHP Code:
    ALTER TABLE jogadores DROP COLUMN dinheiro
  • Tipo de dado ao ler o cache

    Vejo muitos tópicos de pessoa pedindo ajuda para ler os dados do banco, que fazer o código porém não funciona, porém apenas não percebem que cada tipo de dado tem sua respectiva função, por exemplo:
    Eu costumo identificar as colunas pelo seu nome, ou seja, uso as funções:

    cache_get_value_name para string
    PHP Code:
    new dest[128];
    cache_get_value_name(0"none"dest);
    printf("The O valor na coluna 'nome' é '%s'."dest); 
    cache_get_value_name_int para inteiros
    PHP Code:
    new int_dest;
    cache_get_value_name_int(2"dinheiro"int_dest);
    printf("O valor da terceira linha da coluna 'dinheiro' é '%d'."int_dest); 
    cache_get_value_name_float para floats
    PHP Code:
    new Float:float_dest;
    cache_get_value_name_float(3"pos_x"float_dest);
    printf("O valor da quarta linha da coluna 'pos_x' é '%f'."float_dest); 
    exemplos por: wiki samp
  • Colunas com nome em sequencia

    PHP Code:
    CREATE TABLE tabela (
    id INT(11PRIMARY KEY AUTO_INCREMENT,
    nome VARCHAR(24NOT NULL,
    carro_1 INT(11),
    carro_2 INT(11),
    carro_3 INT(11),
    ...
    carro_n INT(11)); 
    Quase todos que conheço do fórum fazem isso, alguns por ter aprendido assim, outros por costume
    O MySQL é um SGBD Relacional, ou seja, ele tem relações, você deve relacionar as tabelas, criar colunas em sequencias da trabalho para usar, para manutenção, legibilidade, etc...

    Exemplo de tabelas relacionadas:
    PHP Code:
    CREATE TABLE jogador
    id INT(11PRIMARY KEY AUTO_INCREMENT
    nome VARCHAR(24NOT NULL
    // outras colunas da tabela, nenhuma sendo a chave do carro
    );

    CREATE TABLE carro
    id INT(11PRIMARY KEY AUTO_INCREMENT
    dono INT(4NOT NULL// aqui esta o relacionamento, este será o ID do dono do veiculo, 
    FOREIGN KEY (donoREFERENCES jogador(idON DELETE CASCADE); 
    para mais informações acesse esse tutorial

Estes são os "erros" que mais encontrei no tempo que estive observando tópicos e conversas sobre SQL, com o tempo vou adicionando mais conteúdo ao tópico

Links recomendandos:
w3schools
wiki sa-mp
Junções
Modelagem de dados

Last edited by DiegoR; 31/07/2018 at 03:21 PM.
DiegoR is offline   Reply With Quote
Old 31/07/2018, 03:04 PM   #2
Domingues
Little Clucker
 
Domingues's Avatar
 
Join Date: Jul 2018
Posts: 20
Reputation: 3
Default Re: Erros comuns MySQL

Muito bom Mano.
Domingues is offline   Reply With Quote
Old 31/07/2018, 05:15 PM   #3
NathanT
Big Clucker
 
Join Date: Jul 2016
Posts: 156
Reputation: 17
Default Re: Erros comuns MySQL

Bom tutorial, acho que você poderia comentar também a questão do SQL Injection; não é exatamente um erro do programador mas acho que merecia lugar em seu tópico também. Poderia citar exemplos de onde ele mais pode ocorrer, etc.
NathanT is offline   Reply With Quote
Old 31/07/2018, 11:50 PM   #4
Cauezin
Huge Clucker
 
Cauezin's Avatar
 
Join Date: Feb 2018
Location: Brasil - Rio de Janeiro
Posts: 359
Reputation: 12
Default Re: Erros comuns MySQL

Muito bom.
__________________
the last person you want to be.
Cauezin is offline   Reply With Quote
Old 03/08/2018, 02:54 PM   #5
HelderPT
Gangsta
 
HelderPT's Avatar
 
Join Date: Jan 2018
Location: Portugal
Posts: 529
Reputation: 21
Default Re: Erros comuns MySQL

Bom tutorial para quem está iniciando estudos em MySQL
HelderPT is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tutorial] Como criar uma Text Draw - Selecionáveis, comuns e para players específicos Kuddy Lançamentos/Releases 29 18/07/2016 10:25 PM
MySQL Erros SkilletKiller Server Support 2 01/08/2015 04:04 PM
[Ajuda] Erros em gamemode do zero... com MySQL NikiFor Português/Portuguese 5 03/05/2015 04:52 PM
[Tutorial] Identificando erros comuns no SA:MP Maklister Lançamentos/Releases 11 24/01/2013 03:55 PM


All times are GMT. The time now is 01:33 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.