Perl MySQL Excluir dados

Resumo : neste tutorial, você aprenderá como excluir dados em uma tabela MySQL usando Perl DBI.

Você usa a instrução DELETE para excluir uma ou mais linhas em uma tabela. Para excluir todas as linhas de uma tabela, você usa a DELETEinstrução sem a cláusula WHERE . Para excluir todas as linhas em uma tabela grande com mais eficiência, você usa a instrução TRUNCATE TABLE .

Para excluir linhas em tabelas relacionadas, você usa a instrução DELETE JOIN ou a ação referencial ON DELETE CASCADE de uma chave estrangeira .

Perl MySQL excluir etapas de dados

Para excluir dados em uma tabela MySQL de um programa Perl, você precisa seguir as seguintes etapas:

Primeiro, use o  connect()método para conectar-se ao banco de dados MySQL:

my $dbh = DBI->connect($dsn,$username,$password, \%attr);Linguagem de código:  Perl  ( perl )

A seguir, para excluir uma linha de uma tabela, você usa a DELETEinstrução com uma WHEREcláusula. Você precisa colocar os espaços reservados ( ?) na DELETEinstrução para passar os valores do programa para a instrução. Os espaços reservados (?) serão substituídos pelos valores.

my $sql = "DELETE FROM table_name WHERE id=?";
my $sth = $dbh->prepare($sql);Linguagem de código:  Perl  ( perl )

Em seguida, chame o  execute()método do objeto handle da instrução para executar a consulta. Você também precisa passar os argumentos, que substituem os espaços reservados na DELETEinstrução, para o  execute()método.

$sth->execute($id);Linguagem de código:  Perl  ( perl )

Depois disso, desconecte-se do banco de dados MySQL.

$dbh->disconnect();Linguagem de código:  Perl  ( perl )

Finalmente, você pode exibir uma mensagem para especificar que a linha foi excluída com sucesso.

Perl MySQL exclui exemplos de dados

Faremos uma cópia da linkstabela para demonstração.

CREATE TABLE clinks
SELECT * FROM links;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O MySQL criou uma nova tabela nomeada clinkscom a mesma estrutura e dados da linkstabela.

A seguir está o conteúdo da clinkstabela:

SELECT * FROM clinks;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de exclusão de dados Perl MySQL - tabela clinks

O programa a seguir exclui primeiro o link com id 1 e depois trunca a clinkstabela.

#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # for say() function

use DBI;

say "Perl MySQL Delete Data Demo";

# MySQL database configurations
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

# connect to MySQL database
my %attr = (PrintError=>0, RaiseError=>1);

my $dbh = DBI->connect($dsn,$username,$password, \%attr);

# delete 1 row with id 1
# say "Link with id 1 deleted successfully!" if delete_one_row($dbh,1);

# delete all rows in the clinks table
# say "All links deleted successfully!" if delete_all_rows($dbh);

# disconnect from the MySQL database
$dbh->disconnect();

sub delete_one_row {
    # delete one row from table
    # $dbh: database handle
    # $link_id: id of the link that need to delete
    my($dbh,$link_id)  = @_;
    my $sql = "DELETE FROM clinks WHERE link_id = ?";
    my $sth = $dbh->prepare($sql);
    return $sth->execute($link_id);
}

sub delete_all_rows {
    # delete all rows in the clinks table
    my($dbh) = @_;
    my $sql = "TRUNCATE TABLE clinks";
    my $sth = $dbh->prepare($sql);
    return $sth->execute(); 
}Linguagem de código:  Perl  ( perl )

Primeiro, remova o comentário da chamada à  delete_one_row()sub-rotina e execute o programa. Recebemos a seguinte mensagem:

Perl MySQL Delete Data Demo
Link with id 1 deleted successfully!Linguagem de código:  JavaScript  ( javascript )

Confira a clinkstabela para verificar a exclusão:

SELECT * FROM clinks;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de exclusão de dados Perl MySQL - Excluir 1 linha

Segundo, comente a chamada à  delete_on_row()sub-rotina, remova o comentário da chamada à  delete_all_rows()sub-rotina e execute o programa:

Perl MySQL Delete Data Demo
All links deleted successfully!

Consulte a clinkstabela novamente para verificar a operação de truncar a tabela:

SELECT * FROM clinks;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ele não retorna nenhuma linha conforme o esperado.

Neste tutorial, você aprendeu como usar Perl DBI para excluir dados em uma tabela de um banco de dados MySQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *