ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Удаление данных в MySQL с помощью Perl

Учебник. MySQL и Perl

Описание: в этой статье вы узнаете, как удалять данные в таблице MySQL с помощью Perl DBI.

Вы используете команду DELETE для удаления одной или нескольких строк в таблице. Чтобы удалить все строки в таблице, вы используете оператор DELETE без предложения WHERE. Чтобы более эффективно удалить все строки в большой таблице, используйте оператор TRUNCATE TABLE.

Для удаления строк в связанных таблицах вы используете оператор DELETE JOIN или ссылочное действие ON DELETE CASCADE внешнего ключа.

 

Удаление данных в MySQL с помощью Perl

Чтобы удалить данные в таблице MySQL из программы Perl, вам необходимо выполнить следующие шаги:

Во-первых, используйте метод connect() для подключения к базе данных MySQL:

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

 

Затем, чтобы удалить одну строку из таблицы, вы используете оператор DELETE с предложением WHERE. Вам необходимо поместить заполнители (?) в оператор DELETE, чтобы передать значения из программы в оператор. Заполнители (?) будут заменены значениями.

my $sql = "DELETE FROM table_name WHERE id=?";
my $sth = $dbh->prepare($sql);

 

Затем вызовите метод execute() объекта дескриптора оператора для выполнения запроса. Также необходимо передать аргументы, которые заменяют заполнители в предложении DELETE, методу execute().

$sth->execute($id);

 

После этого отключитесь от базы данных MySQL.

$dbh->disconnect();

 

Наконец, вы можете отобразить сообщение, чтобы указать, что строка была успешно удалена.

 

Пример удаления данных в MySQL с помощью Perl

Делаем копию таблицы links для демонстрации.

CREATE TABLE clinks
SELECT * FROM links;

 

MySQL создал новую таблицу clinks с такой же структурой и данными, как у таблицы links.

Ниже приводится содержание таблицы clinks:

SELECT * FROM clinks;

 

Следующая программа сначала удаляет ссылку с идентификатором 1, а затем усекает таблицу clinks.

#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # для функции say()

use DBI;

say "Пример удаления данных в MySQL с помощью Perl";

# Конфигурации баз данных MySQL
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

# подключение к базе данных MySQL
my %attr = (PrintError=>0, RaiseError=>1);

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

# удалить 1 строку с идентификатором 1
# say "Ссылка с идентификатором 1 успешно удалена!" if delete_one_row($dbh,1);

# удалите все строки в таблице clinks
# say "Все ссылки успешно удалены!" if delete_all_rows($dbh);

# отключитесь от базы данных MySQL
$dbh->disconnect();

sub delete_one_row {
# удалить одну строку из таблицы
# $dbh: дескриптор базы данных
# $link_id: идентификатор ссылки, которую нужно удалить
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 {
# удалите все строки в таблице clinks
my($dbh) = @_;
my $sql = "TRUNCATE TABLE clinks";
my $sth = $dbh->prepare($sql);
return $sth->execute();
}

 

Сначала удалите комментарий вызова к подпрограмме delete_one_row() и запустите программу. Мы получили следующее сообщение:

Пример удаления данных в MySQL с помощью Perl
Ссылка с идентификатором 1 успешно удалена!

 

Проверьте таблицу clinks, чтобы подтвердить удаление:

SELECT * FROM clinks;

 

Во-вторых, закомментируйте вызов подпрограммы delete_on_row(), удалите комментарий вызова к подпрограмме delete_all_rows() и выполните программу:

Пример удаления данных в MySQL с помощью Perl
Все ссылки успешно удалены!

 

Снова запросите таблицу clinks, чтобы проверить операцию с усеченной таблицей:

SELECT * FROM clinks;

 

Он не возвращает строки, как мы ожидали.

В этой статье мы показали, как использовать Perl DBI для удаления данных в таблице базы данных MySQL.

Exit mobile version