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 DELETE
instruçã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 DELETE
instrução com uma WHERE
cláusula. Você precisa colocar os espaços reservados ( ?
) na DELETE
instruçã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 DELETE
instruçã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 links
tabela 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 clinks
com a mesma estrutura e dados da links
tabela.
A seguir está o conteúdo da clinks
tabela:
SELECT * FROM clinks;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O programa a seguir exclui primeiro o link com id 1 e depois trunca a clinks
tabela.
#!/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 clinks
tabela para verificar a exclusão:
SELECT * FROM clinks;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
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 clinks
tabela 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.